Solrにおけるあいまい検索の実装について

投稿者: Anonymous

Ruby on RailsでSunspotを通してSolrの検索システムを作っています。

検索自体は問題なくできるのですが、より高度な検索を実装したいと思っており改修しております。
現状の検索ですと、「渋谷駅」と検索すると、「渋谷」は検索結果に出てきません。
同様に、「東京都」で検索すると、「東京」はマッチしません。

「渋谷駅」と検索したら「渋谷」を含むものも検索結果に出てくるように改修したいです。

困っているので、もしどなたかご存知でしたら教えて頂けないでしょうか?

よろしくお願い致します。

解決

Solrをセットアップして試してみましたが、フィールドが

  • org.apache.solr.schema.TextField のときは、”渋谷駅”で「渋谷」を含むドキュメントが検索できる
  • org.apache.solr.schema.StrField のときは、”渋谷駅”でも”渋谷”でもヒットせず、”*渋谷*”でなら検索できる

という感じでした。(コンソールのquery画面で確認)

日本語用のフィールドであれば、JapanesePartOfSpeechStopFilterFactoryを使って特定の品詞を落とすことができるようです。デフォルトで助詞などが除外されるようになっていますが、lang/stoptags_jaを編集することで任意の品詞を除外対象に追加できます。名詞-接尾-地域
を追加すると「市」とか「駅」とかが落ちました。(コンソールのAnalysisで確認)

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *