【问题标题】:lucene.net phonetic filterlucene.net 语音过滤器
【发布时间】:2012-09-21 10:52:57
【问题描述】:

我正在尝试将文本数据存储到 lucene。

搜索应该是拼音!

我应该在哪里添加语音过滤器?

Lucene.Net.Store.Directory dir =
FSDirectory.Open(new DirectoryInfo(Application.StartupPath + "\\Index"));

IndexReader indexReader = IndexReader.Open(dir, true);
Searcher indexSearch = new IndexSearcher(indexReader);
//IndexReader indexReader = IndexReader.Open(dir, true);
//Searcher indexSearch = new IndexSearcher(indexReader);
Analyzer analyzer = new Lucene.Net.Analysis.De.GermanAnalyzer();

//Analyzer analyzer = new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29);
var queryParser = new QueryParser(Lucene.Net.Util.Version.LUCENE_29,"content", analyzer);
var query = queryParser.Parse(textBox1.Text+"~0.8");

Console.WriteLine("Searching for: " + query.ToString());
TopDocs resultDocs = indexSearch.Search(query, indexReader.MaxDoc());

Console.WriteLine("Results Found: " + resultDocs.TotalHits)

问候,英戈

【问题讨论】:

  • 你有音标器吗?

标签: c# lucene.net phonetics


【解决方案1】:

一种方法是实现一个Analyzer,将其添加到TokenStream 链中,或者直接使用TokenStream。

即:

System.IO.TextReader someText = ....;
TokenStream phonetics = new PhoneticFilter(new LowerCaseFilter(new WhitespaceTokenizer(someText )));

PhoneticFilter 替换为您实现的TokenFilter,并在搜索和索引时都使用它。

【讨论】:

    猜你喜欢
    • 2010-12-08
    • 1970-01-01
    • 2012-10-12
    • 2011-10-05
    • 1970-01-01
    • 2013-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多