Sphinx搜索产品&版本号

时间:2015-02-03 21:31:41

标签: php sphinx

我需要使用Sphinx构建一个简单的搜索引擎来搜索产品和版本号(这是字符串)。例如,如果我在我的索引中:

  • title =产品名称
  • version = 1.2.3

  • title =其他一些产品

  • version = 2.5 beta

  • title =又一产品

  • version = 1.2.4 alpha

所以我想要实现的是:

  • 查询"产品1.2"应该与产品1和产品相匹配3(版本1.2应匹配为1.2.3和1.2.4的子字符串)
  • 查询"产品"应匹配所有3种产品
  • 查询" beta"应该匹配产品2
  • 查询" 1.2.4"应该只匹配第3个产品

等。

为实现此目的,哪些配置设置很重要?我尝试改变了很多配置变量(忽略字符,混合字符等),但没有给我带来我想要的结果......

1 个答案:

答案 0 :(得分:0)

charset_table = english, U+2E
min_prefix_len = 1

然后重写查询以自动将*附加到结束数字

$query = preg_replace('/\b(\d+[\.\d]*)\b/','$1*',$query);

唯一的问题是,搜索1.2仍然会匹配1.20.2。应该可以通过零填充(在索引中使用regex_filter填充)来解决这个问题,但这样做还要多得多。