我正在查询一个Lucene索引文件,我没有构建这个结构。此索引包含具有以下结构的字段的文档:
正如您所看到的,'type'字段始终为空,但'all'字段包含以某种方式格式化的数据,以便可搜索并包含type=ta
种语法。
奇怪的是,当我使用type:ta
查询此索引时,即使类型字段始终为空,它实际上也会输出一些内容。
这里发生了什么?
修改
在谷歌搜索后,我发现了一个奇怪的概念(至少对我来说,来自SQL数据库背景),数据可以以不同的方式存储(Store.YES和Store.NO)。 Lucene indexing: Store and indexing modes explained
这对我来说是一个非常不寻常的概念,因为我找不到很多不存储数据的理由。使用Store.NO背后的原因是什么?即使我没有在任何地方显示数据,我也很可能总是想要那里的数据......我的意思是如果数据被索引,它必须存储,无论如何,对吗?
答案 0 :(得分:1)
使用Store.NO背后的原因是什么?
考虑查询:
第一个索引将映射term -> document
。第二个将映射document -> term
。大多数人只想使用Lucene作为第一种类型的查询,因此他们只构建第一种类型的索引(Store.NO)。如果要执行第二种类型的查询,则需要构建两种类型的索引。这占用了更多空间。 (理论上可以循环遍历所有术语并找出文档而不实际构建此索引,但它真的慢。)
“反向索引”可能是比“商店”更合适的名称。
答案 1 :(得分:0)
什么lucene查询语法:有很多转向字符
试
类型: 'TA'
引用了thoe ..