Lucene中的文档必须包含相同的字段吗?

Lucene中的文档必须包含相同的字段吗?,lucene,lucene.net,Lucene,Lucene.net,我正在考虑/致力于为我们公司的各种内容类型实现一个搜索引擎,并试图对Lucene(特别是.net风格)了如指掌 目前,我的主要问题是一个索引中的文档是否必须包含相同的字段 例如: 文件1: 标题:“我是一份文件,宝贝” 正文:“这里有一些重要的事情” 纬度:26.12224 长度:-65.23124 品牌:东芝 文件2: 标题:“我的另一份文件” 身体:“Lorem ipsum和所有的爵士乐” 类别:物品 作者:洛因爵士 …等等如果您希望对特定字段进行索引,我想所有文档都必须具有相同的字

我正在考虑/致力于为我们公司的各种内容类型实现一个搜索引擎,并试图对Lucene(特别是.net风格)了如指掌

目前,我的主要问题是一个索引中的文档是否必须包含相同的字段

例如:

文件1:

  • 标题:“我是一份文件,宝贝”
  • 正文:“这里有一些重要的事情”
  • 纬度:26.12224
  • 长度:-65.23124
  • 品牌:东芝
文件2:

  • 标题:“我的另一份文件”
  • 身体:“Lorem ipsum和所有的爵士乐”
  • 类别:物品
  • 作者:洛因爵士

…等等

如果您希望对特定字段进行索引,我想所有文档都必须具有相同的字段

lucene中的任何内容都不能强制实现一致性


如果您在名为“fred”的字段上搜索,但并非所有文档都有“fred”,则该搜索将无法找到fredless文档。

这完全取决于您在Lucene中如何为文档编制索引。所有
文档
都必须添加到索引中。您可以使用
IndexWriter
或编写自己的类来完成此操作。在将文档添加到索引之前,应将其拆分为名称-值对。随后,您可以使用
QueryParser
查询Lucene中的这些名称值。例如,下面的查询将返回标题中带有短语“我是一个文档,宝贝”和正文中带有短语“这里有一些重要的东西”的所有文档

title:("I'm a document, baby") body:("Here are some important things")
我刚刚展示了一个简单的示例,但您可以通过许多不同的方式创建更强大的搜索查询


我提到的类来自java,但.net应该是类似的。

这是我的直觉告诉thusfar的,但我无法找到任何具体的方式。