我是 Elasticsearch 的新手。我有文件,每個文件都有這樣的結構:{ "created_at": "2018-01-01 01:01:01", "student": { "first_name": "john", "last_name": "doe" }, "parent": { "first_name": "susan", "last_name": "smile" }}我只想根據student.first_nameusing olivere/elasticpackage for對這些文檔進行排序go。這是我目前的查詢:searchSvc = searchSvc.SortBy(elastic.NewFieldSort("student.first_name").Asc())我收到了這個錯誤:彈性:錯誤 400(錯誤請求):所有分片都失敗 [type=search_phase_execution_exception]但是,當我嘗試按 對它進行排序時created_at,它正在工作。searchSvc = searchSvc.SortBy(elastic.NewFieldSort("created_at").Asc())我在索引中沒有任何映射。(這是問題嗎?)我嘗試搜索類似“Elasticsearch 按嵌套對象排序”之類的內容,但我總是遇到需要對嵌套對象中的數組進行排序的問題。
1 回答

冉冉說
TA貢獻1877條經驗 獲得超1個贊
原來這是初學者的錯誤。。你不能按文本字段排序。我從這里得到它elasticsearch-dsl-py Sorting by Text() field
但是,如果您不指定映射,您可以執(zhí)行的操作是按字段的關鍵字屬性進行排序。
searchSvc = searchSvc.SortBy(elastic.NewFieldSort("student.first_name.keyword").Asc())
它有效!
- 1 回答
- 0 關注
- 108 瀏覽
添加回答
舉報
0/150
提交
取消