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

时间:2010-01-14 19:21:11

标签: lucene lucene.net

我正在考虑/正在为我们公司的各种内容类型实施搜索引擎,并试图将我的头脑包裹在Lucene(特别是.net风格)。

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

例如:

文档1:

  • 标题:“我是一份文件,宝贝”
  • 身体:“这是一些重要的事情”
  • 纬度:26.12224
  • Longtitude:-65.23124
  • 品牌:东芝

文档2:

  • 标题:“我的另一份文件”
  • 身体:“Lorem ipsum和所有那些爵士乐”
  • 类别:文章
  • 作者:莱恩爵士

......等等

3 个答案:

答案 0 :(得分:14)

lucene中没有任何东西可以促进均匀性。

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

答案 1 :(得分:0)

如果您希望索引特定字段,我猜所有文档必须具有相同的字段。

答案 2 :(得分:0)

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

title:("I'm a document, baby") body:("Here are some important things")

我刚刚展示了一个简单的示例,但您可以通过多种方式创建更强大的搜索查询。

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