2
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_29);
IndexSearcher indexSearcher;
File file = new File("/sdcard/index/");
Directory indexDir = FSDirectory.open(file);
indexSearcher = new IndexSearcher(indexDir, true);
QueryParser parser = new QueryParser(Version.LUCENE_29, "DIG", analyzer);
Query query = parser.parse(mEdit.getText().toString());
ScoreDoc[] hits = indexSearcher.search(query, null, 1000).scoreDocs;    

こんにちは、これはバージョン2.9.2でのluceneテキスト検索用の私のコードです。lucene snowball 2.9.2のコードを記述して、「game」というテキストを検索すると、「game」を含むドキュメントも検索し、「games」も検索するようにします。このためのコードの書き方を教えてください。Luceneでテキストを検索できますが、luceneスノーボール2.9.2で検索したいです。

4

1 に答える 1

0

それ以外の

Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_29);

あなたが使用することができます

Analyzer analyzer = new SnowballAnalyzer(Version.LUCENE_29, "English");

そうすれば、舞台裏でEnglishStemmerを使用することになります。混乱を避けるために、インデックス時間と検索時間の間は同じアナライザーを使用することを忘れないでください。ステマーを使用する場合、Luceneインデックスには、正確な入力単語ではなく、ステミングされた単語が格納されます。

2.9については、ここでJavadocを参照してください。Luceneの新しいバージョンでは、次のような言語ごとのアナライザーがありますEnglishAnalyzer(を渡さないので、型の安全性が向上しますStringが、クラス名は渡されます)。

于 2011-12-15T15:27:32.753 に答える