1
想我保存了一組字符串(在Lucene的每個文件將是單個單詞),然後輸入一個詞W,我想檢索所有文件不僅匹配字W而且這些文件,其莖版本還W.使用Lucene搜索與詞幹啓用
匹配此外,假設輸入的詞W,我會想接這個案子的照顧那裏是這個詞的詞根版本相匹配W¯¯以及文檔。
會寫我自己的自定義分析,並返回一個PorterStemFilter足夠?我是否需要編寫這個類並在代碼中將其作爲分析器引用?
想我保存了一組字符串(在Lucene的每個文件將是單個單詞),然後輸入一個詞W,我想檢索所有文件不僅匹配字W而且這些文件,其莖版本還W.使用Lucene搜索與詞幹啓用
匹配此外,假設輸入的詞W,我會想接這個案子的照顧那裏是這個詞的詞根版本相匹配W¯¯以及文檔。
會寫我自己的自定義分析,並返回一個PorterStemFilter足夠?我是否需要編寫這個類並在代碼中將其作爲分析器引用?
寫有分析儀鏈中的詞幹應該足夠了一個自定義的分析。
下面是一個使用PorterStemFilter在Lucene的4.1
class MyAnalyzer extends Analyzer {
@Override
protected TokenStreamComponents createComponents(String fieldName, Reader reader) {
Tokenizer source = new LowerCaseTokenizer(version, reader);
return new TokenStreamComponents(source, new PorterStemFilter(source));
}
}
請注意,您必須使用相同的自定義分析,同時查詢其用於索引以及示例代碼。
你可能會發現你的相應PorterStemFilter文檔中的Lucene版本的示例代碼。
感謝。這有助於。我在這裏有一個疑問。如果兩個單詞出現在同一個單詞中,是不是會導致精度問題? – 2013-03-18 18:03:24
是,利用所產生將改善的精確度爲代價召回。程序員/設計師應根據問題領域的特定要求作出決定。 – phani 2013-03-18 18:51:03