0

我有一个餐厅列表,我想使用电话号码与我的数据库中的餐厅进行匹配。问题是数字的格式不同(即(123)123-1234123 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返回一个空数组,因为我没有得到任何结果。

有没有办法:phone在 Solr 进行搜索之前删除我的数据库值()?

谢谢。

4

1 回答 1

2

为您的电话号码字段配置WordDelimiterFilterFactory 。
这将允许您以各种格式索引电话数据并使它们也可搜索。
您不需要对数据库进行任何更改。

于 2012-11-01T18:05:18.257 回答