私は単純なアドレスデータベースを構築しています。 Address
という名前のクラスを住所がフィールド(街、市、州、郵便番号)に分割されているようにしてください。各フィールドはString型です。OrientDBフルテキストインデックス複数のフィールドでLuceneを使用して検索する
私はそれらの中の単語でアドレスを検索できるようにしたいと思います。例:検索された単語が通り名や市名などの住所であるかどうかを調べる つまり、住所のどの部分に興味があるかを指定することなく、ユーザーが簡単に検索できるようにします。
だから私は、次のコマンドと同じようにインデックスを作成しました:
create index Address.full on Address(street,city,state,ZIP) fulltext engine lucene
しかし、私は、次のクエリを実行するとき、私は結果やエラーメッセージが何も取得しない:
select * from Address where Address.full lucene "4*"
を210 =>結果がありません。郵便番号が46250と46256の2つのレコードになります。
select * from Address where ZIP lucene "4*"
=>「インデックス設定なしでlucene条件を評価することはできません」
select * from index:Address.full where key lucene "4*"
=>ノー結果
さらに: select count(*) from index:Address.full
=> Luceneのインデックスを作成しない何らかの理由手段カウントとして0を返します。インデックスの作成時にエラーメッセージは表示されません。
どのようにすればいいですか?
結果が表示されない理由についてのクエリをデバッグする方法はありますか?
ありがとうございましたが、それは私が探しているものではありません。私はおそらく私の要求で明らかではなかった。私はそれを明確にしてみましょう: 検索された単語が通り、都市、ZIPまたは州のフィールドにあるかどうかにかかわらずレコードを見つけるクエリで検索できるようにします。 つまり、ユーザーが興味のあるアドレスの部分を指定することなく、簡単に検索できるようにしたいと考えています。 –