在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  網絡安全/ lucene 檢索做到輸入一個 “甲” 將甲相關的都檢索出來 并且如果 有 “

lucene 檢索做到輸入一個 “甲” 將甲相關的都檢索出來 并且如果 有 “甲" 這個字段 那他排到最前

我的索引有三個字段

Doc1---
名稱:甲苯
別名:無水甲苯;甲基苯
編號:534-07-6

Doc2---
名稱:甲苯-2,4-二異氰酸酯
別名:2,4-TDI;2,4-二異氰酸甲苯酯;甲苯-2,4-二異氰酸酯;甲苯基-2,4-二異氰酸酯;2,4-二異氰

  酸酯甲苯;甲苯 2,4-二異氰酸酯 

編號:584-84-9

就比如這兩個字段,我搜“甲苯” 條件是這三個字段都檢索,那么lucene 的排序是按照檢索得分來排,那么Doc2得分最多因為出現(xiàn) ‘甲苯’ 最多所以排在最前,但關鍵詞是甲苯 ,客戶希望找的就是甲苯 Doc1 問題就是如何讓最相似的排在最前。

回答
編輯回答
氕氘氚

你可以在搜索的時候,利用lucene自帶的通配符匹配搜索,搜索結果排序的問題,在lucene官方的文檔中也有說明,我建議你重點看下lucene官方文檔。http://lucene.apache.org/ 這個是下載地址。

2017年6月25日 00:45
編輯回答
大濕胸

我用solr。
1,可以給不同域設置不同的域激勵因子,從而降低因為次要域出現(xiàn)過多關鍵字過分影響結果。
2,可以通過(關鍵字出現(xiàn)次數(shù)/該域包含單詞數(shù))來提高doc1的排序。 具體操作你再查查。

2018年1月13日 07:13
編輯回答
喜歡你

生成索引時加上: document.setBoost(100); //自定義評分,如100
查詢時使用: org.apache.lucene.search.function.FieldScoreQuery;

2017年7月29日 20:03