我想通过index->按此顺序在ES上搜索数据by index_type->文本搜索数据
当我在“_index”上使用以下查询时,我希望获得该特定_index下的index_types列表以及相关数据,但它没有返回任何内容。另一方面,当我按_type搜索时,我得到了与index_type有关的数据。我哪里出错了?
curl -XGET 'http://localhost:9200/_all/_search?pretty' -d '{
"facets": {
"terms": {
"terms": {
"field": "_index",
"size": 10,
"order": "count",
"exclude": []
},
"facet_filter": {
"fquery": {
"query": {
"filtered": {
"query": {
"bool": {
"should": [
{
"query_string": {
"query": "*"
}
}
]
}
},
"filter": {
"bool": {
"must": [
{
"terms": {
"_index": [
"<index_name>"
]
}
}
]
}
}
}
}
}
}
}
},
"size": 0
}'
注意:我首先在Kibana遇到了这个问题,我使用了过滤器“_index”:“name_of_index”;它没有返回任何结果,但“_type”:“name_of_index_type”返回了预期的结果。我发现Kibana在幕后使用上面的查询来获得我试过的过滤器的结果。
答案 0 :(得分:0)
这是一个带有预过滤器的查询示例(&#34;查询&#34;:&#34; *&#34;)然后是必须和必须查询。然后resutlt用于进行聚合:
curl -XGET 'http://localhost:9200/YOUR_INDEX_NAME/_search?size=10' -d '{
"query" : {
"filtered" : {
"query" : {
"query_string" : {
"query" : "*"
}
},
"filter" : {
"bool" : {
"must" : [
{ "term" : { "E_RECORDEDBY" : "malençon, g."} },
{ "term" : { "T_SCIENTIFICNAME" : "peniophora incarnata" } }
],
"must_not" : [
{"term" : { "L_CONTINENT" : "africa" } },
{"term" : { "L_CONTINENT" : "europe" } }
]
}
}
}
},
"aggs" : {
"L_CONTINENT" : {
"terms" : {
"field" : "L_CONTINENT",
"size" : 20
}
}
},
"sort" : "_score"
}'