2013-01-07 54 views
0

我遇到了一個我似乎無法用Lucene.net解決的問題。我們將Lucene.net用於自動完成的字段,並希望以搜索詞開頭的匹配出現在列表頂部,以及其他匹配。Lucene.net如何自定義得分

基本上,我想要的是搜索結果,從搜索詞開始,得到某種促進,出現在頂部。

我檢查了CustomScoreProvider和CustomScoreQuery,但我無法想象如何使用它來做我想做的事情,並且沒有關於如何實現它的好例子。但也許我正在吠叫錯誤的樹木,因爲這很容易通過設置一些財產或某物來實現。

回答

1

您可以通過更改您的查詢而不是更改您的評分算法來解決此問題。

所以查詢這將有:

Field:(this is a piece of text) 

變爲:

Field:"this is a piece of text*"^2 OR Field:(this is a piece of text)