【发布时间】:2019-10-25 18:37:55
【问题描述】:
我正在使用 HighLevelRestClient 7.4.0,我很好奇在使用 Index API 索引文档时如何创建 not_analyzed 字段。
问题是我正在尝试按标题实现电影搜索,如果我搜索“矩阵”它会返回正确的结果,但如果我搜索“矩阵”它会返回几乎每部电影都有“ " 在标题中(matchQuery 就是这种情况)。
我改为使用 termQuery,但现在当我搜索“矩阵”时,它会返回正确的结果,当我搜索“矩阵”时,它什么也找不到,“矩阵”也是如此。
我猜问题是当我索引我的文档时,默认情况下会分析每个文本字段。如何创建 not_analyzed 索引?
现在我通过简单地将数据结构转换为带有 GSON 的 Json 来为电影编制索引。
【问题讨论】:
-
如果您创建一个 not_analyzed(或关键字) 字段,您将只能搜索整个文本 ex。 "the matrix" ,搜索 "matrix" 不会返回任何东西。而是在匹配查询中传递“And”运算符。 ex "query": { "match" : { "message" : { "query" : "this is a test", "operator" : "and" } } } 你也可以定义最小匹配百分比
标签: elasticsearch elasticsearch-rest-client