我在Web GUI中有一个搜索文本字段,用于Elasticsearch索引,该索引有两种不同类型的字段需要搜索;全文(描述)和完全匹配(id)。
问题1 - 如何为id字段添加第二个完全匹配查询?当我搜索ID时,确切的ID在结果“set”内,但它应该是唯一的结果。
描述搜索似乎工作正常,而不是ID搜索。
"multi_match": {
"fields": ["id", "description"],
"query": query,
"description": {
"fuzziness": 1,
"operator": "and"
}
}
答案 0 :(得分:0)
Dani的查询结构可能正是您所寻找的,但也许您还需要替代查询的模糊方面。或者可能不是 - 您能否提供一个描述字段的用户输入示例以及您希望与之匹配的内容?
查看Match Query documentation和Elasticsearch Common Options - fuzziness,这种模糊性基于Levenshtein距离。因此,该查询对应于允许编辑距离为1并且将允许轻微的拼写错误等。如果您将and
运算符保留在原始查询中,则查询中的所有字词必须匹配。鉴于您的文档的描述类似于"基于Lucene"的搜索服务器,您将无法使用类似"基于lucene的搜索服务器"等描述查询来检索该文档。使用带有停止过滤器和堵塞过滤器的分析器以及带有slop的匹配短语查询可以工作吗?但同样,这取决于你在尝试什么。