我有一个约 20GB 的文档索引,其中包含与它们相关联的多个属性的单词,例如:
字:word_1 word_2 ... word_n
位置:pos1_1:pos1_2:pos1:3 pos2 ... pos_n_1:pos_n_2
引理:引理1_1:引理1:2:引理1_3引理2引理_n_1:引理n_2
由':'分隔的字段标记是不明确的,即它们对应于文档中的相同位置。歧义词属性的一个重要细节是,例如,pos1_1 只对应于 lemma1_1,而不对应于 lemma1_2 或 1_3,因此在相同位置搜索 pos1_1 和 lemma1_3 时不能匹配 word_1。
我使用标准 positionIncrement = 0 处理模棱两可的标记位置,以及与标记有效负载对应的属性号。比如说,lemma1_1 的有效载荷 = 1, lemma1_2 - 2; pos1_1 - 1、pos1_2 - 2 等等。在同一位置搜索令牌属性时,我使用有效负载过滤器检查所有匹配的令牌的有效负载是否相同。
就是这样:SpanNearQueries 在该索引上运行非常慢(10 秒)。索引中的大多数文档都与常规查询匹配。我实际上不知道 SpanQueries 是如何深入工作的,但是它们在设计上是否存在效率低下的问题?还是有效载荷检索如此昂贵?我只是想知道我是否遗漏了一些明显减慢整个搜索速度的东西。