我正在考虑/正在为我们公司的各种内容类型实施搜索引擎,并试图将我的头脑包裹在Lucene(特别是.net风格)。
目前,我的主要问题是文档中的一个索引是否必须包含相同的字段。
例如:
文档1:
文档2:
......等等
答案 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应该类似。