1

私のWebサイトには、価格付きの製品のインデックスを含むZend Search(Lucene)フレームワークの実装があります。

価格を抑えながら、お客様に何かを検索していただけるように心がけています。例えば。5ドルから10ドルの間で「ドッグフード」を検索します。

私の検索インデックスは次のようになります:
Keyword('name')
Keyword('price')

データベースに2つのアイテム(名前と価格)があるとしましょう
'ドッグフード'10
'ドットトリート'11

次の検索を行うと、両方の結果が表示されます。
price [1 TO 15] name:dog
これはまさに私が欲しいものです。

ただし、範囲をprice [5 TO 15]に変更すると、結果が返されません。誰かがこれをデバッグする方法を理解するのを手伝ってもらえますか?この動作は、私のWeb実装とLukeの両方で発生します。

4

1 に答える 1

2

これが取引です。Luceneのこれらの値は文字列として表され、辞書式にソートされます。したがって、それらをゼロで埋める必要があります。最大価格が999ドルであるとすると、各価格を3桁の文字列(001、005、015など)として挿入する必要があります。次に、クエリは次のようになります。

price:[005 TO 015] name:dog

どちらが機能するはずです。

于 2009-09-30T11:56:06.810 に答える