2010-04-14 126 views
0

例如,如果我使用「好」,「更好」,「最佳」值進行枚舉,那麼我想按字段對其中的一個值進行字符串表示的字段進行排序。如何在lucene中對搜索結果進行排序?

我有幾個目的:

1)創建CustomAnalyzer從枚舉產生數值:好 - > 1,更好 - > 2,最好 - > 3

2)實施FieldComparator(我不不知道如何)

任何想法?

回答

3

你可以使用querytime增壓:

+(basequery)最好^ 10000 ^好百好^ 10

參見,http://wiki.apache.org/solr/SolrRelevancyCookbook#Boosting_Ranking_Terms

+0

而且會是什麼,在這種情況下的得分公式? 「basequery」將有正常的推動,最好的將有巨大的提振。因此,當用戶在「內容」字段中搜索「我喜歡lucene」並且會發現諸如「Ann愛她的媽媽」,「我愛4月1號」等不相關的結果時,因爲它們在枚舉字段中具有「最好的」相關結果「我愛lucene」將處於最底層,因爲此結果沒有枚舉字段。 – Jeriho 2010-04-15 07:54:15

+0

設置基礎查詢的提升並減少枚舉的提升:例如'+(基準查詢)^ 100最好^ 50更好^ 20好^ 10'。這樣,basequery的相關性將被視爲更重要。 – 2011-05-24 12:45:07

相關問題