2014-05-10 120 views
0

我有一個文檔如下。我想做一個搜索,但我不能這樣做,因爲我缺乏知識。請幫忙。我如何在複雜聚合中的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

如果你只是想用 「名」 DOC: 「野馬」,你可以使用

"query" : { "bool" : { "must" : { "term" : { "Name" : "Mustang" } } } }

+0

我很高興地看到,響應,但沒了它沒有工作。因爲我懷疑這個對象是一個聚合汽車和cartype。汽車類型有一個屬性名稱。我正試圖在那裏搜索。 –

1

Standard Analyzer正在應用於您的Name字段,因此術語Mustang正在作爲mustang存儲在索引中。更改您的查詢使用"Name": "mustang",你應該得到一個匹配。

0

這裏有兩個問題:

  1. 您正在使用term濾波器,它在索引中搜索Mustang令牌,但正在使用標準分析器所以它實際上是索引爲mustang
  2. 您正在錯誤的字段中搜索。您應該使用嵌套表示法,例如Type.Name

該查詢應該按預期工作:

​​