我已经按照Couchbase - ElasticSearch教程集成,我正在使用啤酒样本桶进行测试。
我有一个问题。
我可以进行如下查询:
{
"query": {
"match": {
"doc.name": "IPA"
}
}
}
但如果我这样搜索:
{
"query": {
"filtered": {
"query": {
"match_all": { }
},
"filter": {
"term": { "doc.name": "IPA" }
}
}
}
}
我没有得到任何结果。
使用其他字符串字段我没有问题,例如“type”:“beer”
{
"query": {
"match": {
"doc.type": "beer"
}
}
}
{
"query": {
"filtered": {
"query": {
"match_all": { }
},
"filter": {
"term": { "doc.name": "beer" }
}
}
}
}
我不知道为什么。
提前致谢
答案 0 :(得分:1)
这是因为您的分析仪。对于字符串,默认分析器会降低输入。因此,IPA被索引为ipa。
术语过滤器不会分析您的输入,因此,您搜索IPA,并且在索引中,您有ipa - > IPA!= ipa,因此,文档不匹配。
另一方面,匹配查询使用为字段设置的分析器分析您的输入,因此,您的输入是小写的,并且您搜索ipa。
我希望这是有道理的。