我有一份文件如下。我想做一个搜索,但我不能这样做,因为我缺乏知识。请帮忙。如何在复杂聚合中对ElasticSearch进行搜索?
我的文件
{
"_index": "vehicles",
"_type": "car",
"_id": "e16bd474-fa8e-4858-ab6c-3bbb3d0aa603",
"_version": 1,
"found": true,
"_source": {
"Type": {
"Name": "Mustang"
}
}
}
我的搜索查询
GET _search
{
"query":{
"filtered": {
"filter": {
"term": {
"Name": "Mustang"
}
}
}
},
"from":0,
"size":10
}
答案 0 :(得分:1)
Standard Analyzer已应用于您的Name
字段,因此术语Mustang
将作为mustang
存储在索引中。将您的查询更改为使用"Name": "mustang"
,您应该获得匹配。
答案 1 :(得分:0)
如果您只想要使用" Name" :" Mustang"你可以用
"query" : {
"bool" : {
"must" : {
"term" : {
"Name" : "Mustang"
}
}
}
}
答案 2 :(得分:0)
有两个问题:
term
过滤器搜索索引中的Mustang
令牌,但正在使用标准分析器,因此它实际上已编入索引为mustang
。 Type.Name
此查询应按预期工作:
{"query":{ "filtered": { "filter": {
"term": { "Type.Name": "mustang" }
}}}}