有没有人能简单地解释一下全文搜索服务器(如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)
能否用简单的话解释一下这些查询是如何工作和生成的?