【问题标题】:Using Sphinx with Regex to search a number plate table使用带有 Regex 的 Sphinx 搜索车牌表
【发布时间】: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” 此查询可能需要一分钟以上,具体取决于搜索,我需要它在几个 秒。

所以我的问题是:

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

【问题讨论】:

  • 如果可以的话,尝试只使用普通的mysql。

标签: php mysql search-engine sphinx


【解决方案1】:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-13
    • 2023-04-08
    • 1970-01-01
    • 2015-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多