使用Sphinx和Regex来搜索车牌表


Using Sphinx with Regex to search a number plate table

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

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

我的表格布局如下:

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

这个表包含30000000行,在我使用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. 斯芬克斯是为了满足这个要求而建造的吗
  2. Sphinx是否可以执行将在运行时根据用户的输入
  3. 我是怎么开始做这件事的

此处回答http://sphinxsearch.com/forum/view.html?id=8945