我正在尝试在 Lucene 中索引一个可能具有不同语言的 RDF 文字的字段。到目前为止,我看到的大多数方法是:
使用单个索引,其中每个文档针对其使用的每种语言都有一个字段,或者
使用 M 个索引,M 是语料库中语言的数量。
Lucene 2.9+ 有一个称为 Payload 的功能,允许将属性附加到术语。是否有人使用这种机制来存储语言(或其他属性,如数据类型)信息?与其他两种方法相比,性能如何?显示如何完成的源代码上的任何指针都会有所帮助。谢谢。
我正在尝试在 Lucene 中索引一个可能具有不同语言的 RDF 文字的字段。到目前为止,我看到的大多数方法是:
使用单个索引,其中每个文档针对其使用的每种语言都有一个字段,或者
使用 M 个索引,M 是语料库中语言的数量。
Lucene 2.9+ 有一个称为 Payload 的功能,允许将属性附加到术语。是否有人使用这种机制来存储语言(或其他属性,如数据类型)信息?与其他两种方法相比,性能如何?显示如何完成的源代码上的任何指针都会有所帮助。谢谢。
所以基本上 lucene 是一种排名算法,它只是查看字符串并将它们与其他字符串进行比较。它们可以用不同的字符编码进行编码,但它们的相似性是相同的。只要确保您使用受支持的语言词干分析器加载 SnowBallAnalyzer,您应该会得到结果。比如说西班牙语或中文
这取决于。
+text:foo +language:english
.在效率方面:您可能希望避免使用有效负载,因为您必须为每个术语重复语言名称,并且您不能基于有效负载进行搜索(至少不容易)。