Elasticsearch - 匹配一个或多个字词的搜索字段

时间:2018-03-30 13:33:02

标签: elasticsearch full-text-search

假设我有一个产品目录在Elasticsearch中编入索引的场景。索引映射有许多字段:品牌,名称,类别,颜色,描述。

鉴于搜索文本“三星智能手机黑”,我想知道每个术语匹配字段与匹配数。

我想回到这样的事情:

samsung = brand (500), description (600)

smartphone = category (2300), name (356), description (900) 

black = name (167), color (1245), description (800)

是否有任何ES查询来获取此信息?

1 个答案:

答案 0 :(得分:0)

通过多个字段匹配的查询可以使用Multi Match Query完成,但据我所知,任何查询都不提供您要查找的响应类型。

此外,在您的应用程序逻辑级别执行此类工作听起来并不高效(从它的全文搜索开始,因此它更加困难)。

也许你可以在每个目标字段中单独进行匹配查询,然后比较结果。