2013-06-24 47 views
2

我試圖使用ElasticSearch來查找包含特定字符串的所有記錄。我爲此使用了匹配查詢,並且工作正常。使用ElasticSearch對匹配查詢進行排序

現在,我試圖根據特定字段對結果進行排序。當我嘗試這個時,我得到了一些非常意想不到的輸出,並且沒有記錄甚至包含我的初始搜索查詢。

{ 
"query": 
{ 
    "match": {"_all": "some_search_string"} 
}, 
"sort": [ 
{ 
    "some_field": { 
     "order": "asc" 
     } 
} 
] } 

上午我在這裏做得不對:

如下我的要求的結構?

回答

1

爲了排序字符串字段,您的映射必須包含此字段的未分析版本。 Here's a simple blog post I found,描述如何使用the multi_field mapping type來做到這一點。

+2

謝謝,但我不認爲這是問題。如果我搜索某個特定的術語而不是使用匹配查詢,則排序工作得很好。例如,如果我嘗試: 「查詢」:{ 「term」:{「some_field」:「some_Search_String」} }, 排序可以解決。 使用排序功能特別是匹配時是否存在一些問題? 我很感激幫助! –

相關問題