公司產品提出需求,需要對文件進行評分,如果評分不相同則按照評分大小排序,如果評分相同則在相同的結果下按照試題年份排序.
es在執行sort之後方評分失效
通過閱讀文件得知,es在執行評分會大量耗時,並且在排序的時候由於沒有指定元欄位』_score』會導致不會進行評分.所以我們在使用的時候如果想根據評分相同的情況下在進行排序那我們就需要對評分進行選定.
在查詢的時候新增家元屬性
"track_scores":"true"
在進行排序的時候一定要將評分算入排序規則中
"sort": [},}
]
測試環境
響應時間
就測試結果而言,評分之後在進行排序對效能損耗是可以接受的.
由於業務的要求,目前檢索資料需求就是對欄位進行雙模糊查詢,所以使用的是wildcard去檢索資料,這個欄位對內容的評分定義非常粗糙他的演算法和正常的match查詢演算法是不一樣的具體細節有待研究!!!
貼上我的查詢語句僅供參考
}},
}}
],"adjust_pure_negative": true,
"boost": 1}}
],"filter": [}}
],"adjust_pure_negative": true,
"boost": 1}},
"sort": [},}
],"highlight": ,
"choices.keyword": {}
}}}
elasticsearch在docker安裝後命令
docker安裝就不贅述了,網上一大堆 本人linux上安裝docker 啟動 docker systemctl start docker 守護程序重啟docker sudo systemctl daemon reload 重啟docker服務docker systemctl restart doc...
關於elasticsearch在系統架構中的位置
最近由於專案的原因,開始接觸到es。在使用和學習的過程中,不斷的產生著各種疑問讓我略顯迷茫。所以開始撰寫這篇部落格來記錄和推進自己對elasticsearch的學習。就現在而言,題目可能起的有點過於大。對於還並不算合格的程式設計師的我來說,談架構還為時尚早。但我希望在這篇文章終結的時候,自己能夠成長...
筆記 elasticsearch在專案中的使用需求
摘抄自公司大牛的筆記,自己總結一下 模擬mysql,我們需要 or and in like count sum group by order by limit 在高版本的es裡面使用了boolquery替換了filter querybuilders.termquery isdel 1 termque...