对于我的实验,我需要为我的收藏文件的每个字段定义特定的相似性指标。
例如,我需要测量描述字段与tf.idf的相似性,以及使用Harvesine距离的地理位置字段...等等...
我现在正在研究Similarity类。我想知道是否有任何好的教程或示例,以便更快地进行...
感谢
答案 0 :(得分:1)
编辑: 在IIUC中,每个字段都有一个相似性公式,并且您希望每个文档使用它,与所有其他文档一起运行。 您可以在索引时使用多个选项:
在这两种方法中,您可以使用payloads来存储特定于术语的信息(可能对lat-long数据有用)。
使用其中一种方法实现Similarity类后,使用Similarity.setDefault(mySimilarity)将其设置为用于索引和搜索的Similarity实例。
只有索引你的文本语料库,你可以在以后搜索 - 你可能还需要扩展Searcher类来获得原始的相似性。
话虽如此,我相信这种方法对你的用例是错误的 - Lucene已经过优化,可以得到一些类似的文档,而不是每个文档的得分,所以我预测运行时会让人望而却步 - 希望我错了,但是尽管如此,我建议你阅读Mining of Massive Datasets以获得更好的方法 - 最小的哈希和乱七八糟。
祝你好运。 Patrick,我将首先引用Grant Ingersoll关于修改Similarity类:"Here be Dragons"。定制Lucene的Similarity类很难。我做到了这一点。
这不好玩。只有你必须这样做才能做到这一点。 击>
我建议您先阅读Grant's spatial search paper,his findability paper和his 'debugging relevance' paper。这些显示了根据需要获得点击的其他方式。