我在 Elastic search 1.4 短语查询中遇到问题。我正在使用数据创建以下索引。
curl -XPUT localhost:9200/test
curl -XPOST localhost:9200/test/doc/1 -d '{"field1" : "abc-xyz"}'
curl -XPOST localhost:9200/test/doc/2 -d '{"field1" : "bcd-gyz"}'
因此,默认情况下 field1 通过弹性搜索使用默认分析器进行分析。
我正在下面的短语查询中搜索,但它没有返回任何结果。
{
"query": {
"filtered": {
"filter": {
"bool": {
"should": [
{
"query": {
"multi_match": {
"query": "abc\\-xyz OR bcd\\-gyz",
"type": "phrase",
"fields": [
"field1"
]
}
}
}
]
}
}
}
}
}
所以弹性搜索短语查询不适用于 OR 运算符。知道为什么它不起作用,是否因为文本中的特殊字符连字符 (-) 而限制了弹性搜索?