我在查询字符串搜索中使用雪球分析器......就像这样
"query" : {
"query_string" : {
"query" : the-query-string-goes-here,
"default_operator" : "AND",
"analyzer" : "snowball"
}
}
Run Code Online (Sandbox Code Playgroud)
这实际上有效,但它做了一些奇怪的事情......寻找"战斗"将返回"战斗"的结果,但忽略"战斗"的结果.搜索"船员"将返回"船员"但不是"船员"的结果,搜索"船员"也会忽略"船员"的结果......
有谁知道发生了什么?
jav*_*nna 11
在索引时和查询时应用词干时,词干是有意义的.现在,您在查询时应用它,以便搜索作为查询一部分的单词的词干.但我想索引不包含词干,因为你没有在索引时应用词干.您实际上是在该_all字段上搜索,因为您既未在查询中指定任何字段名称,也未使用query_string支持的default_field(或fields)属性._all默认情况下,该字段使用StandardAnalyzer.
有不同的方法来解决这个问题.我个人会决定您要在查询中搜索的一组字段,并将其应用于映射中的字段.之后,您不需要在查询中指定分析器,因为将使用您要搜索的字段的已配置分析器.
如果答案足够清楚,请告诉我.
| 归档时间: |
|
| 查看次数: |
2458 次 |
| 最近记录: |