【发布时间】:2012-04-24 09:34:57
【问题描述】:
谁能用简单的话解释一下像Sphinx 这样的全文服务器是如何工作的?在纯 SQL 中,人们会使用这样的 SQL 查询来搜索文本中的某些关键字:
select * from items where name like '%keyword%';
但在各种 Sphinx 插件生成的配置文件中,我根本看不到任何这样的查询。相反,它们包含如下 SQL 语句,似乎将搜索划分为不同的 ID 组:
SELECT (items.id * 5 + 1) AS id, ...
WHERE items.id >= $start AND items.id <= $end
GROUP BY items.id
..
SELECT * FROM items WHERE items.id = (($id - 1) / 5)
是否可以用简单的语言解释这些查询是如何工作的以及它们是如何生成的?
【问题讨论】:
标签: sql full-text-search search-engine sphinx thinking-sphinx