我想在Lucene的相似性方程中插入另一个得分因子。问题是我不能只是覆盖Similarity类,因为它不知道它正在计算分数的文档和术语。
例如,在包含以下文字的文件中:
The cat is in the top of the tree, and he is going to stay there.
我有一个属于我自己的算法,它为每个人分配本文档中的术语,这些术语表示每个术语对整个文档的重要程度。每个单词的可能得分是:
cat: 0.789212
tree: 0.633423
top: 0.412315
stay: 0.123912
there: 0.0999842
going: 0.00988412
...
每个单词的分数因文档而异。例如,在另一个文档cat
中可能得分:0.0023912
我想将此分数添加到Lucene的得分中,但我对如何做到这一点感到很失望。
任何提示?
答案 0 :(得分:5)
使用Lucene的Payload功能:
来自:http://www.lucidimagination.com/blog/2009/08/05/getting-started-with-payloads/
- 在编制索引期间向一个或多个令牌添加有效负载。
- 覆盖Similarity类以处理评分有效负载
- 在搜索期间使用有效负载感知查询
醇>