Java Lucene查询返回I';我没想到

Java Lucene查询返回I';我没想到,java,indexing,lucene,Java,Indexing,Lucene,我正在查询一个Lucene索引文件,我没有构建它的结构。此索引包含具有如下结构的字段的文档: 正如您所看到的,“type”字段总是空的,但是“all”字段包含的数据格式是可搜索的,并且它包含一种type=ta语法 奇怪的是,当我使用type:ta查询这个索引时,它实际上输出了一些东西,即使type字段总是空的 这里发生了什么事 编辑 在谷歌搜索了一段时间后,我发现了一个奇怪的概念(至少对我来说,来自SQL数据库背景),即数据可以以不同的方式存储(Store.YES和Store.NO) 这对我来

我正在查询一个Lucene索引文件,我没有构建它的结构。此索引包含具有如下结构的字段的文档:

正如您所看到的,“type”字段总是空的,但是“all”字段包含的数据格式是可搜索的,并且它包含一种
type=ta
语法

奇怪的是,当我使用
type:ta
查询这个索引时,它实际上输出了一些东西,即使type字段总是空的

这里发生了什么事

编辑

在谷歌搜索了一段时间后,我发现了一个奇怪的概念(至少对我来说,来自SQL数据库背景),即数据可以以不同的方式存储(Store.YES和Store.NO)


这对我来说是一个非常不寻常的概念,因为我没有找到很多理由不存储数据。使用商店的原因是什么?我很可能总是希望数据在那里,即使我没有在任何地方显示它。。。我的意思是,如果数据被索引,它必须以任何方式存储,对吗?

什么是lucene查询语法:有很多控制字符

试一试

类型:'ta'


引用thoe..

什么是lucene查询语法:有很多指导字符

试一试

类型:'ta'

引用

使用商店的原因是什么

考虑以下问题:

  • 哪些文件包含术语“foo”
  • 文件“1234”包含哪些术语
  • 第一个索引将映射
    术语->文档
    。第二个将映射
    document->term
    。大多数人只想将Lucene用于第一种类型的查询,所以他们只构建第一种类型的索引(Store.NO)。如果要执行第二种类型的查询,则需要构建这两种类型的索引。这会占用更多的空间。(从理论上讲,在不实际构建索引的情况下,可以遍历所有术语并找出文档,但速度非常慢。)

    “反向索引”可能比“存储”更合适

    使用商店的原因是什么

    考虑以下问题:

  • 哪些文件包含术语“foo”
  • 文件“1234”包含哪些术语
  • 第一个索引将映射
    术语->文档
    。第二个将映射
    document->term
    。大多数人只想将Lucene用于第一种类型的查询,所以他们只构建第一种类型的索引(Store.NO)。如果要执行第二种类型的查询,则需要构建这两种类型的索引。这会占用更多的空间。(从理论上讲,在不实际构建索引的情况下,可以遍历所有术语并找出文档,但速度非常慢。)

    “反向索引”可能比“存储”更合适