6

Zend Lucene を使用すると、説明フィールドで数字を検索できません

次のように追加しました。

$doc->addField(Zend_Search_Lucene_Field::Text('description', $current_item['item_short_description'], 'utf-8'));

これをグーグルで検索すると、次のコードを適用すると問題が解決することが示されましたが、そうではありませんでした..:

Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive());

何か考えはありますか?

4

3 に答える 3

8

デフォルトのアナライザーを2回設定する必要があります。インデックス作成プロセスと検索プロセスで。

上からのコード行を使用します。

Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive());
于 2011-02-16T07:46:29.070 に答える
1

Zend_Search_Lucene::open() を呼び出す前または後にそのコマンドを使用しましたか?

事前に呼び出すと間違いなく機能します。

于 2010-06-23T21:57:00.357 に答える
0

「zend」についてはわかりませんが、lucene で数値を処理するには、次の手法を使用する必要があります。

  • int をドキュメントに配置するには、次を使用します。

    document.Add(new Field(FIELD_SPEC, NumberTools.LongToString(YOUR_INT), Field.Store.YES, Field.Index.UN_TOKENIZED));

  • 値を見つけるには、Term: Term(FIELD_SPEC, NumberTools.LongToString(YOUR_INT)) を使用します。

于 2010-05-16T08:23:56.677 に答える