lucene.net фонетический фильтр
Я пытаюсь сохранить текстовые данные в 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)
С уважением, Инго
1 ответ
Решение
Одним из способов является реализация Analyzer
это добавляет это к TokenStream
цепочку или использовать TokenStream напрямую.
то есть:
System.IO.TextReader someText = ....;
TokenStream phonetics = new PhoneticFilter(new LowerCaseFilter(new WhitespaceTokenizer(someText )));
замещать PhoneticFilter
с TokenFilter
Вы реализовали и используете это как во время поиска и индексации.