lucene中的多语词索引

lucene中的多语词索引,lucene,multilingual,payload,Lucene,Multilingual,Payload,我正在尝试在Lucene中索引一个字段,该字段可能具有不同语言中的RDF文本。 到目前为止,我看到的大多数方法是: 使用单个索引,其中每个文档使用的每种语言都有一个字段,或者 使用M索引,M是语料库中的语言数 Lucene 2.9+有一个名为Payload的功能,允许将属性附加到术语。是否有人使用此机制存储语言或其他属性(如数据类型信息)?与其他两种方法相比,性能如何?任何源代码上的指针都会有帮助。谢谢。视情况而定 是否允许以下操作:在所有英文文本中搜索“foo”?如果是这样,那么每种语言需要一

我正在尝试在Lucene中索引一个字段,该字段可能具有不同语言中的RDF文本。 到目前为止,我看到的大多数方法是:

使用单个索引,其中每个文档使用的每种语言都有一个字段,或者

使用M索引,M是语料库中的语言数

Lucene 2.9+有一个名为Payload的功能,允许将属性附加到术语。是否有人使用此机制存储语言或其他属性(如数据类型信息)?与其他两种方法相比,性能如何?任何源代码上的指针都会有帮助。谢谢。

视情况而定

是否允许以下操作:在所有英文文本中搜索“foo”?如果是这样,那么每种语言需要一个字段。 还是要在所有文本中搜索“foo”,并向用户显示找到匹配的语言?如果这是您想要的,那么有效负载或单独的字段都可以工作。 另一种方法是在一个字段中为所有文本编制索引,然后在另一个字段中显示文档的语言。假设每个文档都使用一种语言。然后您的搜索将类似于+文本:foo+语言:英语。
在效率方面:您可能希望避免使用有效负载,因为您必须为每个术语重复语言名称,并且您不能基于有效负载进行搜索,至少不容易。

因此lucene基本上是一种排名算法,它只会查看字符串并将其与其他字符串进行比较。它们可以用不同的字符编码,但它们的相似性是相同的。只需确保加载带有支持的Language词干分析器的SnowBallaAnalyzer,就会得到结果。比如说西班牙语或汉语

我想要案例2。我需要能够向用户呈现其文字的语言。如果有一个名为prefLabel的字段,lucene能否处理不同语言中相似标签的索引,例如email ^en email ^fr?反向索引是否使用有效载荷来区分条目?@fellahst:你可以将有效载荷视为你想要附加到术语上的任意随机垃圾。搜索者忽略了它。不过,您可以在最后手动将其拉出。我注意到有一个类PayloadTermQuery允许查询有效负载。我不确定当你说搜索者忽略有效载荷时,你的说法是否正确。@fellahst:公平地说,你可以创建自己的PayloadFunction。但它并不是在Lucene身上烤出来的;有效负载的索引方式与术语不同。如果您关心性能,那么有效负载不是解决问题的方法。