ドキュメント内の単語をステミングしたいので、KStem に焦点を合わせました。私は Eclipse で作業しており、lucene-core jar ファイルを lib フォルダーにダウンロードしてビルド パスに追加することで Lucene を構成しました。KStem jar ファイルについても同様にこれを行いました。ただし、Java コードで KStem ライブラリを使用する方法に関する例やドキュメントを見つけることができません。そのためにSolrをセットアップする必要がありますか-それが何のためにあるのか完全にはわかりません。
1 に答える
スキーマ (ドキュメントのコンテンツを持つフィールド タイプ) で Lucene / SOLR によって取得されるように KStem を構成し、コードからインデックス付けするドキュメントのみを送信する必要があります。残りの魔法 (トークン化 / ステミング / ストップ ワードの削除などを含む) は、Lucene / SOLR 内で発生します (ドキュメントに適用するように構成した処理手順によって異なります)。SOLR で KStem を構成する方法を参照してください: http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters/Kstem
要するに、Lucene は強力なインデックス作成および検索ライブラリであり、SOLR 内で使用されます。SOLR は完全な検索サーバーです。
ファセット検索、オートコンプリート、シャーディング、レプリケーションなどの機能が必要な場合は、Solr をインストールして構成します。そうでない場合、たとえば、ドキュメントの比較的小さなインデックスを作成してすばやく再構築することが目標であり、独自のアプリ内から検索を整理したい場合は、Lucene を Java ライブラリとして使用します。
コード内で KStemmer を使用する方法:
private final KStemmer stemmer = new KStemmer();
// char[] term = ...
stemmer.stem(term, len);
ドキュメントの内容を自分で用語のリストに分割する必要があります。
これは KStemmer が Lucene 内で使用される方法です: http://svn.apache.org/repos/asf/lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/KStemFilter .java
KStemmer クラスは Lucene の現在のトランク (org.apache.lucene.analysis.en) の一部であることに注意してください: http://svn.apache.org/repos/asf/lucene/dev/trunk/lucene/analysis/common/src /java/org/apache/lucene/analysis/en/KStemmer.java