在我的情況下,文檔有兩個字段,例如「title」和「views」。 「視圖」表示人們訪問此文檔的次數。如:「title」:「iphone」,「views」:「10」。 我必須制定一個策略,將分配一些權重的意見,如相關性分數計算的分數(標題)* 0.8 +分數(意見)* 0.2。 lucene是否可以做到這一點?我想知道是否有一些與這個問題有關的算法。Lucene:如何提升某些特定字段
8
A
回答
10
這裏是你如何能做到這一點:
Query titleQuery, viewsQuery;
titleQuery.setBoost(0.8);
viewsQuery.setBoost(0.2);
BooleanQuery query = new BooleanQuery();
query.add(titleQuery, Occur.MUST); // or Occur.SHOULD if this clause is optional
query.add(viewsQuery, Occur.SHOULD); // or Occur.MUST if this clause is required
// use query to search documents
將比分成正比0.8*score(titleQuery) + 0.2*score(viewsQuery)
(到乘常數)。
要利用您的views
字段,您可能需要使用ValueSourceQuery。
5
您可以通過3種方式提升。根據您的需求,你可能想使用組合
文檔級提升 - 而索引 - 通過調用 document.setBoost()之前,文檔被添加到索引。
文檔的字段級別提升 - 索引 - 通過在向文檔添加字段之前(以及 將文檔添加到索引之前)調用 field.setBoost()。
查詢級別提升 - 在 搜索期間,通過設置查詢子句的提升,調用 Query.setBoost()。
來源:http://lucene.apache.org/core/old_versioned_docs/versions/3_0_0/scoring.html
+0
document.setBoost()很久以前就被棄用了。 – Dannyboy 2017-10-18 19:52:35
相關問題
- 1. Elasticsearch查詢:提升特定字段
- 2. 自定義lucene評分 - 字段提升和查詢提升之間的點積
- 3. 如何控制Lucene中的某些字段的搜索
- 4. 通過某些字段提升Solr的結果?
- 5. 如何根據model_a的字段公開model_b的某些特定字段?
- 6. 如何搜索某個特定字段不存在的lucene索引?
- 7. Zend搜索Lucene - 搜索特定字段
- 8. Lucene搜索字段必須以某些字母開頭
- 9. 如何提升Lucene-6中的QueryParser?
- 10. ActiveRecord不提取某些字段
- 11. 確定哪些字段在lucene多字段查詢中匹配
- 12. 使用Lucene設置字段升壓
- 13. 「提升」lucene文檔中相同字段的不同實例
- 14. 對lucene /指南針字段搜索有提升作用
- 15. 僅從Lucene返回某些字段搜索
- 16. 如何在Lucene.Net中提升字段3
- 17. 如何過濾JSON中的某些特殊字段?
- 18. 我如何在某些時候驗證某些字段?
- 19. 用PHP提升某些SQL行
- 20. 如何防止提交某些表單的字段
- 21. 如何在我的表單提交時重置某些字段?
- 22. HTML5 localStorage,如何排除某些字段
- 23. 如何某些特定時間
- 24. 只提交特定字段
- 25. onfocusout使用jQuery的某些特定字段驗證
- 26. JSR-303如何在某些時間忽略特定字段的驗證
- 27. 如何使用awk在文本文件中顯示某些特定的字段?
- 28. 某些CSS「類」關鍵字PrimeFaces特定?
- 29. JPA如何讓某些字段不是所有的字段
- 30. 如何更改TextView上的某些特定字符?
如果我明白了correctyl setBoost已被棄用,並且這些天使用https://lucene.apache.org/core/5_5_0/core/org/apache/lucene/search/BoostQuery.html shoudl – Dannyboy 2017-10-18 19:51:41