我已经阅读了一篇关于如何使用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
。
答案 0 :(得分:3)
Lucene已弃用TOKENIZED
和UN_TOKENIZED
,现已将其命名为ANALYZED
和NOT_ANALYZED
。
NOT_ANALYZED
的含义是,字段内容将不通过分析器运行。实际上,如果搜索,它们被视为单个“术语”。作为有用的示例,documentation命名唯一的产品ID(即EANs或UPCs)。
ANALYZED
的含义意味着将分析字段内容并(可能)分解为多个“术语”。 Lucene文档提到这对于普通文本很有用。这个question的公认答案很好地解释了一些常用的分析仪。
如需进一步参考,请参阅Lucene.net和Lucene文件。