如何使用 Lucene 索引和搜索多个术语和短语

How to Index and Search multiple terms and phrases with Lucene

我正在使用 Lucene.NET 来索引一组文档的内容。我的索引包含几个字段,但我主要关心查询 "contents" 字段。我试图找出最好的索引方式以及创建查询的方式来满足要求。

当前要求如下:

有些文档很大,所以我想我们不想做 Field.Store.Yes,对吧?除非我们必须做我们需要做的事情。

使用 lucene 的标准分析器和 queryparser 应该可以很好地处理您列出的要求。确保在 IndexWriter 和 QueryParser 中使用相同的分析器。停用词被消除。标点符号通常会被忽略,尽管规则有点复杂,只是忽略 每个 标点字符(如果您对详细信息感兴趣,请参阅 UAX #29, section 4

如果您尝试 运行 和 Lucene demo,您应该会发现它与您在此处指定的一样有效。

就存储字段而言,你没看错,是的。如果您需要从索引中检索它,请存储该字段。不需要检索的大字段不需要存储。