我想按「時間戳」字段(它不是「_timestamp」默認值)進行排序。 「時間戳」字段存儲微unixtime在ElasticSearch排序不起作用
"_source": {
...
"timestamp": "1381256450000"
...
}
在截圖中,你可以看到在「排序」(右側)這個值。最後的記錄應該是結果的頂部。但事實並非如此。
截圖:
我想按「時間戳」字段(它不是「_timestamp」默認值)進行排序。 「時間戳」字段存儲微unixtime在ElasticSearch排序不起作用
"_source": {
...
"timestamp": "1381256450000"
...
}
在截圖中,你可以看到在「排序」(右側)這個值。最後的記錄應該是結果的頂部。但事實並非如此。
截圖:
默認情況下,如果沒有與字段關聯映射的搜索請求將失敗。 ignore_unmapped選項允許忽略沒有映射並且不能按照它們排序的字段。
如果您想使用它來對結果進行排序,您必須映射該字段。
你能提供一個例子嗎?是否有可能將其包含在搜索查詢中,或者我應該永久設置它? –
以下2個鏈接解釋瞭如何設置索引映射:http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping.html http://www.elasticsearch.org/guide/en/ elasticsearch/reference/current/indices-put-mapping.html 映射是永久性設置的,您必須重新索引所有現有文檔。 –
如果一個字段至少出現在一個文檔中,它會自動提交到合理的默認值映射中。如果您嘗試在未映射的字段上排序,則會返回錯誤。假設您查詢多種類型,其中一個類型沒有該字段(它從未出現在任何文檔中,但您尚未手動提交其映射),則會出現錯誤。這裏似乎不是這種情況? – javanna
它來自不同的索引。是僅在索引中排序的記錄嗎? – phoet
索引映射中是否有'timestamp'? –
@phoet不,他們不是,你可以在屏幕截圖 –