使用Sphinx和Regex搜索车牌表

时间:2012-01-25 13:27:51

标签: php mysql search-engine sphinx

如果有人能在这里建议我,我将永远感激不尽。我是狮身人面像的新手 并将测试数据库/索引示例安装到我的服务器上。

我现在处于需要更改sphinx.conf文件中的设置的位置 创建一个新的索引等。

我的表格布局如下:

Name: listings_dvla
===================
id -> Unsigned INT, primary key
characters -> varchar(15) FULLTEXT indexed
active -> bool
price -> decimal(10,2)

此表包含30,000,000行,在我使用mysql查询数据库之前 对于使用以下查询的相似号牌(假设我搜索“kev”):

SELECT characters, price 
FROM listings_dvla 
WHERE active=TRUE 
AND characters REGEXP '^[a-z0-9]*[(k)]+[a-z0-9]?[(e)(3)]+[a-z0-9]?[(v)]+[a-z0-9]*' 
ORDER BY characters ASC
LIMIT 0, 12

正则表达式正在做的是“找到一个K后跟一个E或3后跟一个V” 此查询可能需要一分钟,具体取决于搜索,我需要它在几个 秒。

所以我的问题是:

  1. Sphinx是否能够满足这一要求?
  2. Sphinx可以执行将在运行时构建的正则表达式,具体取决于 用户的输入
  3. 我怎么开始这么做呢?

1 个答案:

答案 0 :(得分:1)