译自:原文地址
分析器(analyzer)控制了文本如何被切分成词,而词是真正用来索引文档的信息。如果你在索引和搜索的时候使用不同的分析器,那么就有可能把相同的语句映射成不同的词,这样就无法找到这些结果。
注意:并没有一个规定,强制要求索引和搜索的时候必须使用同一个分析器,有些情况下使用不同的分析器是有用的(例如处理同义词的时候)。但是分析器之间必须兼容。
同时要注意哪些没有被分词的字段(例如关键字字段)。索引时,这些字段不会被分析器处理,但是搜索的时候,QueryParser不知道这点,所以它会把所有的搜索字符串传递给选定的分析器。一般来说,关键字的搜索直接构造在代码里,但是开发的时候,它们会造成你很男用通用工具(luke)来检查你的索引。这些工具不知道哪些字段是分词的,哪些没有分词。在contrib/analyzers包内,有一个KeywordTokenizer和它的例子KeywordAnalyzer用于这种情况。
所属分类:
[lucene]
[Java]
tag:
分析器,
索引,
tinyfool发布于2009年11月02日 16:30
最后更新于2009年11月02日 16:31