Phonetic filter lucene.net

I am trying to save text data in lucene.

Search should be phonetic!

Where should I add a 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) 

Regards, Ingo

+1
source share
1 answer

One way is to implement Analyzer , which adds it to the TokenStream chain or directly use TokenStream.

those.:

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

Replace PhoneticFilter with the TokenFilter that you implemented, and use this both in the search and in the index.

+2
source

Source: https://habr.com/ru/post/972815/


All Articles