如果字段映射包含"index": "not_analyzed"
,则 ElasticSearch 支持文本精确匹配。这样,该字段就不会被标记化,ES 将使用整个字符串进行精确匹配。 The Documentation
有没有一种方法可以同时支持全文搜索和精确匹配,而无需创建两个字段:一个用于全文,另一个使用 not_analyzed
映射进行精确匹配?
示例用例:
我们想按书名搜索。
我喜欢树
应该返回全文搜索的结果exact="I like trees"
应该仅返回具有确切标题I like trees
的书籍,而没有其他内容。不区分大小写就可以了。
最佳答案
您可以使用term
过滤器进行完全匹配搜索
过滤器看起来像这样
{
"term" {
"key" : "value"
}
}
查询如下所示:
{
"query" : {
"filtered" : {
"filter" : {
"term" : {
"key" : "value"
}
}
}
}
}
关于node.js - ElasticSearch - 搜索精确的文本匹配而不在索引中保留两个副本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27466268/