0

電話番号を使用してデータベース内のレストランと照合したいレストランのリストがあります。問題は、数値の形式が異なることです(つまり(123)123-1234、または123 123-123または他の組み合わせ)。

私の現在のSolr検索は次のようになります。

search = Restaurant.solr_search do
  with(:phone, SunspotHelper.sanitize_term(pr.phone).gsub(/\s+/, ""))
  paginate page: 1, per_page: 15
end

SunspotHelper.sanitize_term(pr.phone).gsub(/\s+/, "")検索クエリを数字だけに分解します。ただし、データベースの値にはまだ数値以外の文字が含まれているsearch.hitsため、結果が得られないため、空の配列が返されます。

:phoneSolrが検索を行う前にデータベース値()を取り除く方法はありますか?

ありがとう。

4

1 に答える 1

2

電話番号フィールドのWordDelimiterFilterFactoryを構成します。
これにより、電話データをさまざまな形式でインデックス化し、検索可能にすることができます。
データベースに変更を加える必要はありません。

于 2012-11-01T18:05:18.257 に答える