我有一个~20GB的文档索引,其中包含与其相关的多个属性的单词,例如:
WORD:word_1 word_2 ... word_n
POS:pos1_1:pos1_2:pos1:3 pos2 ... pos_n_1:pos_n_2
LEMMA:lemma1_1:lemma1:2:lemma1_3 lemma2 lemma_n_1:lemma_n_2
由':'分隔的字段标记是不明确的,即它们对应于文档中的相同位置。 模糊单词属性的一个重要细节是,例如,pos1_1仅对应于lemma1_1,而不对应于lemma1_2或1_3,因此在搜索pos1_1&时,必须不匹配word_1。 lemma1_3在同一位置。
我使用标准positionIncrement = 0处理模糊标记位置,并且属性编号与标记有效负载对应。比如说,lemma1_1有效负载= 1,lemma1_2 - 2; pos1_1 - 1,pos1_2 - 2,依此类推。在同一位置搜索令牌属性时,我使用有效负载过滤器检查匹配的所有令牌的有效负载是否相同。
就是这样:SpanNearQueries在该索引上运行超慢(10秒)。索引中的大多数文档与常规查询匹配。 我实际上并不知道SpanQueries如何深入工作,但它们在设计上是否存在一些低效率?或者有效负载检索如此昂贵? 我只是想知道我是否遗漏了一些明显会减慢整个搜索速度的东西。