2

テキストデータを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)

よろしく、インゴ

4

1 に答える 1

2

1つの方法はAnalyzer、チェーンに追加するを実装するTokenStreamか、TokenStreamを直接使用することです。

すなわち:

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

実装したものと交換PhoneticFilterし、TokenFilter検索時とインデックス作成時の両方でこれを使用します。

于 2012-09-21T12:58:31.690 に答える