使用Lucene.Net索引数据的指南

时间:2014-05-29 09:15:23

标签: c# lucene.net

我已经阅读了一篇关于如何使用Lucene.Net索引数据的小文章,但很少有代码含义我不清楚

Document doc = new Document();
doc.Add(new Field("ID", oData.ID.ToString() + "_" + oData.Type, Field.Store.YES, Field.Index.UN_TOKENIZED));
doc.Add(new Field("Title", oData.Title, Field.Store.YES, Field.Index.TOKENIZED));
doc.Add(new Field("Description", oData.Description, Field.Store.YES, Field.Index.TOKENIZED));
doc.Add(new Field("Url", oData.Url, Field.Store.YES, Field.Index.TOKENIZED));
writer.AddDocument(doc);

此行doc.Add(new Field("ID", oData.ID.ToString() + "_" + oData.Type, Field.Store.YES, Field.Index.UN_TOKENIZED));

的含义是什么?

Field.Index.UN_TOKENIZED and Field.Index.TOKENIZED

的含义是什么?

如果可能,请详细讨论这些词语的重要性UN_TOKENIZED and Field.Index.TOKENIZED

1 个答案:

答案 0 :(得分:3)

Lucene已弃用TOKENIZEDUN_TOKENIZED,现已将其命名为ANALYZEDNOT_ANALYZED

NOT_ANALYZED的含义是,字段内容将通过分析器运行。实际上,如果搜索,它们被视为单个“术语”。作为有用的示例,documentation命名唯一的产品ID(即EANsUPCs)。

ANALYZED的含义意味着将分析字段内容并(可能)分解为多个“术语”。 Lucene文档提到这对于普通文本很有用。这个question的公认答案很好地解释了一些常用的分析仪。

如需进一步参考,请参阅Lucene.netLucene文件。