如何改善elasticsearch网站搜索体验?

knpiaxh1  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(0)|浏览(179)

我有至少一千个文件和更多的将要来包含标题/页面内容。想想谷歌式的网站搜索吧。我在启用模糊时遇到了很多噪音。同时,模糊性将有助于解决用户错误等问题。
我已经有索引下来,消耗所有的变化页面实时。我正在做一系列有条件的步骤,根据重要性来匹配和提升它们。
最初,我们做了一个poc来将页面内容转换成固定长度的向量,并使用bert来进行查询,这并没有太大的改进,所以现在它使用的是纯es查询。
我知道在elasticsearch中有很多关于可搜索性的内容,您是否有任何资源来改进elasticsearch的网站搜索体验?我缺少我想改进的搜索能力的主要基础。我收到了另一个帖子的推荐信https://www.manning.com/books/relevant-search 我计划在交付时从中学习。
我的团队负责人正在思考和建议的一些事情是基于用户所做的查询执行动态查询。例如,如果用户搜索一个名称(服务检查它是否是一个名称),使用一个没有模糊性的查询。

{
        "query": {
            "bool": {
                "must_not":{
                    "match": {
                        "channel": "techhub"
                    }
                },
                "should": [
                    {
                        "match_phrase": {
                            "title": {
                                "query": message,
                                "slop": 1,
                                "boost": 10.0
                            }
                        }
                    },
                    {
                        "match": {
                            "title": {
                                "query": message,
                                "fuzziness": 1,
                                "minimum_should_match": "1<30%",
                                "boost": 5.0
                            }
                        }
                    },
                    {
                        "match": {
                            "title.edge_ngrams": {
                                "query": message,
                                "fuzziness": 1,
                                "minimum_should_match": "1<30%",
                                "boost": 3.0
                            }
                        }
                    },
                    {
                        "match_phrase": {
                            "plain_blob": {
                                "query": message,
                                "slop": 1,
                                "boost": 10.0
                            }
                        }
                    },
                    {
                        "match": {
                            "plain_blob": {
                                "query": message,
                                "fuzziness": 1,
                                "minimum_should_match": "1<30%",
                                "boost": 1.5
                            }
                        }
                    },
                    {
                        "match": {
                            "plain_blob.edge_ngrams": {
                                "query": message,
                                "fuzziness": 1,
                                "minimum_should_match": "1<30%",
                                "boost": 1.0
                            }
                        }
                    }
                ],
                "minimum_should_match": 1
            }
        },
        "size": 10,
        "from": 0
    }

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题