Mysql到Sphinx查询转换

时间:2016-01-18 22:08:51

标签: sphinx

我如何在sphinx select * from vehicle_details where make LIKE "%john%" OR id IN (1,2,3,4)上撰写此查询,有人可以帮助我吗?我搜索了很多,但我找不到答案。请帮忙

2 个答案:

答案 0 :(得分:1)

如果你真的想使用sphinx,可能会将id变成一个假关键字,所以可以在MATCH中使用它,例如

sql_query = SELECT id, CONCAT('id',id) as _id, make, description FROM ... 

现在,您可以使用基于id的关键字进行匹配。

SELECT * FROM index WHERE MATCH('(@make *john*) | (@_id id1|id2|id3|id4)')

但请仔细阅读sphinx关键字匹配,因为sphinx默认只匹配整个单词,你需要启用与通配符的部分单词匹配(例如使用min_infix_len),这样你就可以关闭到一个简单的LIKE%..%匹配(不考虑单词)

答案 1 :(得分:0)

实际上很难做到,因为你将字符串搜索(Open将是LIKE)与属性过滤器混合在一起。

建议两个单独的查询,一个用于文本过滤器的sphinx。 IN过滤器直接在数据库中做(mysql?)。合并应用程序中的结果。