2012-09-21 9 views
1

텍스트 데이터를 lucene에 저장하려고합니다.lucene.net phonetic filter

검색은 소리 나는대로해야합니다!

어디에서 소리 나는 필터를 추가해야합니까?

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) 

안부, 잉고는

+0

소리 나는 토크 나이저가 있습니까? – Prescott

답변

2

한 가지 방법은 TokenStream 체인에 추가하는 Analyzer을 구현하거나 직접 TokenStream을 사용하는 것입니다.

예 :

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

가와 PhoneticFilter를 교체 TokenFilter 당신이 구현하고, 모두 검색 및 색인시에 사용합니다.