【发布时间】:2013-08-15 10:17:27
【问题描述】:
当我尝试搜索存储状态首字母缩写词的字段时遇到问题。
我有下一个问题:
{
"query": {
"query_string": {
"query": "field_state:'OR' AND type:incentive"
}
}
}
当我尝试获取俄勒冈州 (OR) 的结果时,问题就来了。对于所有其他状态都有效,但对于这个特定的状态,就像 Elasticsearch 将“OR”作为检索所有状态的条件。
有没有办法让这个工作????,我已经用术语、前缀过滤器和所有的结果都试过了。
【问题讨论】:
-
尝试只使用带有 2 个条件的
AND查询而不是query_string查询。 -
你在这个领域使用什么分析器?您确定该值没有被视为停用词吗?
-
我没有使用任何分析器,也没有定义任何停用词。有没有办法知道这是否是默认停用词的一部分??
-
@poncho1984 - "or" 是 StandardAnalyzer 的默认停用词集中的停用词(可能需要查看 lucene 源代码才能看到
StopAnalyzer.ENGLISH_STOP_WORDS_SET的内容)。 -
是否可以仅通过设置分析器来覆盖默认值?或者这将是如何解决这个问题的最佳方法????
标签: elasticsearch