自定义属性如何在Lucene 4中运行?

时间:2012-10-18 15:59:24

标签: java search lucene

如果我在TokenStream中添加自定义属性(例如词性),它是否用于索引过程?

我可以从索引中检索此属性吗?它是为每个令牌存储的吗?

1 个答案:

答案 0 :(得分:1)

如果我理解你在这里寻找什么,我认为你需要创建自己的自定义TokenStream(扩展标准TokenStream,我认为)来实现这一目标,并确定如何存储所有这些额外信息。以及如何从索引中有意义地检索该信息。 我知道没办法完成开箱即用的东西。

我认为你需要为自定义令牌流中的每个令牌写一个新文档。然后在搜索时,使用荧光笔或其他类似的东西来获取查询匹配的术语,并再次查询索引以检索有关该术语的这些元数据文档。这假定由此文档或其他文档重用的任何标记将分配给它的相同元数据。如果情况并非如此,您必须确定如何识别您所寻找的对碰撞不敏感的文件。

或者您可以编写同一文档的另一个字段,为与数据结构并行的每个标记创建一个有序的元数据列表。存储两者,再次使用荧光笔查找搜索结果,并解析令牌流创建的列表中的匹配位置。

嗯,无论如何,这是一些想法。