Apache Solrを使おうとして迷ったこと

Solrに送信した検索クエリは、対象のフィールド型に基いて分解した上で実行される

例えば、フィールド型 text_cjk (2-gram) への検索クエリを発行した場合、以下のようなリクエストになると思いますが、

localhost:8983/solr/core/select?q=さくら

(なお、クエリはURLエンコード処理すること)

Solrは受け取ったクエリ「さくら」を、対象のフィールド型に基いて 「さく」「くら」に分解し、それぞれの検索結果を返します。

このため、「さく」や「くら」のみが含まれるドキュメント(RDBでいうレコード)も結果として返ってきてしまいます。(例えば「くら寿司」や「くらった」とか)

これを解決するには、フレーズ検索を使います。以下のようにダブルクォーテーションで囲ってやります。

localhost:8983/solr/core/select?q="さくら"

これで「さくら」が含まれるドキュメントだけが返ってくるようになります。

AND検索も出来ます。

localhost:8983/solr/core/select?q="さくら" AND "咲いた"

あとは、これぐらいですが、こっちのエントリで書いています。

Apache SolrのDigest認証とポート変更、アクセスログを記録する

0 件のコメント :

PAGE TOP