作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我的查询字符串搜索中使用雪球分析器......就像这样
"query" : {
"query_string" : {
"query" : the-query-string-goes-here,
"default_operator" : "AND",
"analyzer" : "snowball"
}
}
这确实有效,但它做了一些奇怪的事情......搜索“fighting”将返回“fighting”的结果但忽略“fighting”的结果。搜索“crews”将返回“crew”而非“crews”的结果,搜索“crew”也会忽略“crews”的结果 ...
有人知道这是怎么回事吗?
最佳答案
当您在索引时间和查询时间都应用词干提取时,它是有意义的。现在您在查询时应用它,以便搜索作为查询一部分的词的词干。但我猜索引不包含词干,因为您没有在索引时应用词干提取。您实际上是在搜索 _all
字段,因为您既没有在查询中指定任何字段名称,也没有使用 default_field
(或 fields
) query_string 支持的属性。 _all
字段默认使用 StandardAnalyzer
进行分析。
有多种方法可以解决这个问题。我会亲自决定一组您要在查询中搜索的字段,并将其应用到映射中。之后,您无需在查询中指定分析器,因为将为您搜索的字段配置的分析器将被使用。
如果答案足够清楚,请告诉我。
关于带有雪球分析器的 Elasticsearch 仅返回词干词的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12314821/
我是一名优秀的程序员,十分优秀!