Elasticsearchにクエリを発行していますが、複数のレコードタイプを取得しています。結果を1つのタイプに制限するにはどうすればよいですか?
次のクエリは、結果を「your_type」タイプのレコードに制限します。
curl - XGET 'http://localhost:9200/_all/your_type/_search?q=your_query'
詳細については、 http://www.elasticsearch.org/guide/reference/api/search/indices-types.html を参照してください。
クエリdslを使用して、次のような特定のタイプの結果を除外することもできます。
$ curl -XGET 'http://localhost:9200/_search' -d '{
"query": {
"filtered" : {
"filter" : {
"type" : { "value" : "my_type" }
}
}
}
}
'
バージョン6.1のアップデート:タイプフィルターがタイプクエリに置き換えられました: https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-type-query.html これは、クエリとフィルターの両方のコンテキストで使用できます。
{
"query" : {
"filtered" : {
"filter" : {
"bool" : {
"must" :[{"term":{"_type":"UserAudit"}}, {"term" : {"eventType": "REGISTRATION"}}]
}
}
}
},
"aggs":{
"monthly":{
"date_histogram":{
"field":"timestamp",
"interval":"1y"
},
"aggs":{
"existing_visitor":{
"terms":{
"field":"existingGuest"
}
}
}
}
}
}
"_type": "UserAudit"条件は、タイプに固有のレコードのみを検索します
バージョン2.3
クエリを実行できます _ type field like:
{
"query": {
"terms": {
"_type": [ "type_1", "type_2" ]
}
}
}
または、タイプを除外する場合:
{
"query": {
"bool" : {
"must_not" : {
"term" : {
"_type" : "Hassan"
}
}
}
}
}