2009-06-18 12 views
0

Nutchの分野の問題

しかし、最近、私は、数値以外の文字列のインデックスに「Field.Store.NO、Field.Index.UN_TOKENIZED」に変更しました:

Field stateField = new Field("state","irn_" + state, Field.Store.NO, Field.Index.UN_TOKENIZED); 

と「状態:irn_CA」のようなクエリがフェッチことはできません実際には「状態」フィールドに「irn_CA」が追加されたhadoopログを見ても、結果はこれ以上ありません。

"Field.Store.NO、Field.Index.UN_TOKENIZED"を満たすフィールドは疑問ですが、数値フィールドのみを検索することができますが、それに関するドキュメントは表示されませんでした。

これは本当の理由は何ですか?

答えて

2

私は、入力クエリ "irn_CA"を2つのトークン "irn"と "CA"にトークン化する入力クエリの解析にStandardAnalyzerを使用していると思います。索引には単一のトークンとして "irn_CA"があるため、一致しません。

KeywordAnalyzerを検索中に使用してください。これは、クエリ文字列のための単一のトークンを生成し、インデックス付きトークンを正しく一致させます。

0

は私が...サーチャ豆の力のすべてを小文字に考えるので、インデックスに追加するときの状態が小文字であることを確認:「状態::irn_ca」の代わりに 'を

Field stateField = new Field("state","irn_" + state.toLowerCase(), Field.Store.NO, Field.Index.UN_TOKENIZED); 

、あなたが照会するとき状態:irn_CA '。

また、「irn_」という接頭辞が付いていることにも注意してください。そうでなければ、ハイライトがフラグを立てます。