gpt4 book ai didi

elasticsearch - Elasticsearch multi_match逗号问题

转载 作者:行者123 更新时间:2023-12-02 22:42:19 26 4
gpt4 key购买 nike

我在项目上使用 flex 搜索以完成自动完成功能。

这是交易。

如果我搜索关键字=“bird nest”,
我收到一些不想得到的结果:

  • x加州燕窝
  • y在亚特兰大的鸟巢
  • z鸟,巢不可用(这是我不想要的那一种)

  • 有什么方法可以使elasticsearch不匹配单词之间有逗号的单词吗?

    这是我的查询的样子。
    {
    "from": 0,
    "size": 20,
    "sort": [
    {
    "rate": {
    "order": "desc"
    }
    }
    ],
    "query": {
    "bool": {
    "should": {
    "multi_match": {
    "query": keyword,
    "operator": "and",
    "type": "phrase_prefix",
    "fields": [ "name.en_US", "name.zh_TW","name.ja_JP","name.zh_CN" ]
    }
    }
    }
    }
    }

    最佳答案

    它不是您应该研究的映射。它的分析仪在您的案例中起着至关重要的作用。如果使用默认的标准分析仪,这是预期结果。

    请在elasticsearch网站上查看此博客以获取解决方案。

    http://www.elasticsearch.org/blog/starts-with-phrase-matching/

    您可以使用分析api来测试如何在Elasticsearch服务器中对数据进行 token 化。

    curl -XGET 'localhost:9200/test/_analyze?text=this+is+a+test'

    上面的代码将使用与测试索引关联的默认索引分析器对“这是一个测试”文本进行分析。

    还可以提供一个分析器以使用其他分析器:
    curl -XGET 'localhost:9200/test/_analyze?analyzer=whitespace' -d 'this is a test'

    请检查以下链接,了解有关分析API的任何问题。

    http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-analyze.html

    据我所知,您可以将带字定界符标记过滤器的空白分析器用于实现此目的。尝试不同的参数,并使用分析api进行测试以获得预期结果。

    http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/analysis-word-delimiter-tokenfilter.html

    关于elasticsearch - Elasticsearch multi_match逗号问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20674933/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com