我在彈性搜索列表中的字段內進行過濾時遇到問題。我將索引簡單的JSON對象用於搜索和過濾。Elasticsearch在列表中的字段上進行過濾
被索引的一個例子中的物體是:
{
"id" : 1,
"name" : "My Inventory",
"description" : "This is a piece of inventory.",
"sizes" : [ "big", "small" ],
"geos" : [ { "country" : "US", "fullName" : "United States" } ]
}
我可以通過ID,名稱,描述和大小很容易地過濾,而是試圖對地理過濾的時候,我打一個磚牆。以下是我正在嘗試使用的過濾器。我會很感激任何一種指針讓我朝着正確的方向前進。謝謝!
curl -XPOST 'localhost:9200/stuff/inventory/_search?pretty=true' -d '
{
"fields" : [ "name" ],
"filter" : {
"terms" : { "geos.country" : [ "US" ] }
}
}
'
你使用了正確的映射嗎? http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-array-type.html – phoet
你回來了什麼?如果問題是你得到0結果可能是因爲你索引lowercased?試試「我們」。或者,如果您使用defaukt映射,則「我們」是一個停用詞,因此它根本不會被索引。 – javanna
@javanna你說得對。我只對所有字段使用了默認索引,但我使用的是小寫字母。 – mackwo