Elasticsearch multi_match query

Elasticsearch multi_match query

本文关键字:query match multi Elasticsearch      更新时间:2023-09-26

我有一个搜索文本字段在一个web GUI的Elasticsearch索引有两种不同类型的字段需要被搜索;全文(描述)和精确匹配(id)。

问题1 -我应该如何为id字段添加第二个精确匹配查询?当我搜索ID时,确切的ID在结果"set"中,但它应该是唯一的结果。

描述搜索似乎工作正常,只是ID搜索不正常。

"multi_match": {
    "fields": ["id", "description"],
    "query": query,
    "description": {
        "fuzziness": 1,
        "operator": "and"   
     }                      
 }    

我想你正在寻找这样的东西。试试。

{
  "query": {
    "bool": {
     "must": [ {
        "match": {
          "description": {
           "fuzziness": 1,
           "query": "yourfuzzinessdescription"
          }
        }
      },
      {
        "term" : {
          "id" : 1
        }
      }
      ]
    }
  }
}

Dani的查询结构可能是您正在寻找的,但也许您还需要一个替代查询的模糊性方面。或者可能没有——你能提供一个用户输入描述字段的例子,以及你希望它与什么匹配吗?

查看匹配查询文档和Elasticsearch通用选项-模糊性,模糊性是基于Levenshtein距离的。因此,该查询对应于允许编辑距离为1,并允许轻微的拼写错误等。如果在原始查询中保留and运算符,则必须匹配查询中的所有项。假设你有一个文档的描述是"基于Lucene的搜索服务器",你将无法用"基于Lucene的搜索服务器"这样的描述查询来检索它。使用带有停止过滤器和词干过滤器的分析器与带有斜率的匹配短语查询相结合会工作吗?但是,这取决于你想要做什么。