【问题标题】:ElasticSearch multi_match query over multiple fields with Fuzziness具有模糊性的多个字段的 ElasticSearch multi_match 查询
【发布时间】:2015-06-20 08:35:37
【问题描述】:

如何向 multi_match 查询添加模糊性?因此,如果有人要搜索“棒球”,它仍然会找到“棒球”文章。目前我的查询如下所示:

POST /newspaper/articles/_search
{
    "query": {
        "function_score": {
            "query": {
                "multi_match": {
                    "query": "baseball",
                    "type": "phrase",
                    "fields": [
                        "subject^3", 
                        "section^2.5", 
                        "article^2", 
                        "tags^1.5",
                        "notes^1"
                    ]
                }
            }
        }
    }
}

我正在考虑的一个选项是做这样的事情,只是不知道这是否是最好的选择。保持基于评分的排序很重要:

   "query" : { 
      "query_string" : { 
         "query" : "subject:basball^3 section:basball^2.5 article:basball^2", 
         "fuzzy_prefix_length" : 1 
      } 
   } 

建议?

【问题讨论】:

    标签: elasticsearch fuzzy-search


    【解决方案1】:

    要向多查询添加模糊性,您需要添加如下所述的模糊性属性:

    {
        "query": {
            "function_score": {
                "query": {
                    "multi_match": {
                        "query": "baseball",
                        "type": "phrase",
                        "fields": [
                            "subject^3", 
                            "section^2.5", 
                            "article^2", 
                            "tags^1.5",
                            "notes^1"
                        ],
                        "fuzziness" : "AUTO",
                        "prefix_length" : 2
    
                    }
                }
            }
        }
    }
    

    请注意 prefix_length 在文档中解释为:

    不会被“模糊化”的初始字符的数量。这有助于减少必须检查的术语数量。默认为 0。

    要检查模糊性的可能值,请访问ES docs

    【讨论】:

    • 这在 ES 6 中不起作用:Fuzziness not allowed for type [phrase]
    • 也适用于[cross_fileds][phrase_prefix]
    猜你喜欢
    • 1970-01-01
    • 2022-01-08
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 2015-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多