2011-02-09 10 views
1

UPDATED元の質問Luceneのフィールドではありません検索可能

私はそれをデータベースからコンテンツを引き込むプログラムを作成し、インデックス。このプロセスでは、さまざまな情報からなるsearchFieldという文字列変数を作成します。この文字列が構築されると、私は以下の呼び出しを行います。

doc.add(new Field("search", this.stripHTMLTags(searchField), Field.Store.NO, Field.Index.ANALYZED)); 

I)は、(私が内容を表示するためにprint文を入れ、右のデータがdoc.addにそれを作っているので、文字列は、空でないことを知っています。

実際にsearchFieldに表示されるキーワードを検索すると、ヒットは表示されません。

私は他にどんな詳細を提供するか分かりませんし、もっと必要とされていると思います。あなたの理解を助けてくれるのを助けてください。

ありがとうございます!

+0

インデックスにドキュメント自体を追加するだけですか?また、どのように検索しますか? – ffriend

+2

インデックスの作成方法、使用するアナライザ、サンプルドキュメント、ヒットするはずのサンプルクエリを記述することをお勧めします。ところで、これはLuceneユーザーのための優れたユーザー名です... –

+0

stripHTMLTags(searchField)の出力を確認できますか? –

答えて

1

は、私は、ファイルのディレクトリにあなたのインデックスにそれを示唆して、インデックスが作成されたものに見えるようにLukeを使用したい

doc.add(new Field("search", this.stripHTMLTags(searchField), Field.Store.YES, Field.Index.ANALYZED)); 
+0

Field.StoreをYESに変更したことがわかりました。マニュアルを読むと、それが実際にインデックスに表示されることがわかります。実際にあなたは私の質問に答えました。しかし、それはまた、searchFieldになる大量のテキストを格納してはならないとも言います。私が抱えている問題は、searchFieldのインデックスを作成した後、searchField文字列に含まれていた用語を検索できないように見えることです。私はこの新しい問題を反映するために上記の質問を修正します。 – Luke

1

を試してみてください。 Lukeは、Lucene関連の問題をデバッグするのに最適なツールです。

ここで私の指摘は、インデックス作成と検索で異なるアナライザーを使用していることです。インデックスと検索操作が同じアナライザーを使用していることを確認してください。

+1

あなたがお勧めの面白いツールの種類は、OPと同じ名前です –

関連する問題