lucene 从正在处理的文档中提取字段的唯一列表

ehxuflar  于 2022-11-07  发布在  Lucene
关注(0)|答案(1)|浏览(169)

我是Lucene的新手,所以也许我误解了它的工作原理。
我已经索引了几十万个带有许多字符串字段的文档。例如,假设我们有5个字符串字段(名为A,B,C,D,E),前3个被索引(A,B,C),剩下的两个未索引,只包含在文档中(我的意思是D,E)。每个字段中的值可能是重复的,例如,假设字段A用于存储名称,而名称“Richard”出现了很多次。
当我应用查询时,我在每个字段中查找每个术语,现在举个例子,假设我得到了与我的查询匹配的3K个文档。
有没有可能在不扫描和分组结果的情况下获得每个字段的唯一值(不同的)列表?我对此特别感兴趣,因为我对我实际阅读的文档应用了限制,但我希望获得匹配文档的每个字段(甚至是我没有阅读的文档)中唯一值的完整列表。
如果这是可能的,我可以将这个逻辑应用于非索引字段(D,E)吗?

4jb9z9bj

4jb9z9bj1#

在执行搜索时,它会返回所有符合查询条件的文档。在结果上,您可以进行突出显示(这会减慢进程),但如果需要,您也可以进行分页之类的操作,以页为单位返回结果。
在highligher中,你有很多方法可以使用(取决于你使用的Lucene的版本;我在这里说的是最新版本4.8.0),比如GetBestTextFragments(),它有一个名为maxNumberFragments的参数。如果将该参数设置为1,那么它将只从该特定字段返回一个值,即使可能有多个值与查询匹配。
我不确定这是否回答了你的问题,但我希望它能有所帮助。关于未索引的字段,我认为你不能这样做(尽管我从未尝试过)。

相关问题