我正在尝试在Lucene.NET上实现我的搜索,我的需求是:
我是在SQL Server上完成的,但我想把它转移到Lucene.NET。我做了一个研究,首先我在Lucene找到了ISOLatinFilter然后找到了ASCIIFoldingFilter。但我找不到一个简单的例子如何使用它(即使在Lucene的行动书中)
你能给我一个小样本代码来实现重音不敏感搜索吗?我需要在索引上更改其他内容吗?由于我也需要重音敏感,我不能仅创建Accent不敏感索引。
由于
答案 0 :(得分:2)
使用此类作为索引和搜索的分析器,为我工作。
public class CustomAnalyzer : StandardAnalyzer
{
Lucene.Net.Util.Version matchVersion;
public CustomAnalyzer(Lucene.Net.Util.Version p_matchVersion)
: base(p_matchVersion)
{
matchVersion = p_matchVersion;
}
public override TokenStream TokenStream(string fieldName, System.IO.TextReader reader)
{
TokenStream result = new StandardTokenizer(matchVersion, reader);
result = new StandardFilter(result);
result = new ASCIIFoldingFilter(result);
return result;
}
}