【发布时间】:2013-12-28 04:48:20
【问题描述】:
如果有人可以在这里给我建议,我将不胜感激。我是狮身人面像的新手 并将其安装到我的服务器上,测试数据库/索引示例正在运行。
我现在需要更改 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” 此查询可能需要一分钟以上,具体取决于搜索,我需要它在几个 秒。
所以我的问题是:
- Sphinx 是否可以满足此要求?
- Sphinx 能否执行将在运行时构建的正则表达式,具体取决于 用户输入
- 我什至如何开始这样做?
【问题讨论】:
-
如果可以的话,尝试只使用普通的mysql。
标签: php mysql search-engine sphinx