说有一些字符串,比如
sphinxQL> select * from rttest where match('beach');
+------+--------+---------------------------------------------+
| id | weight | value |
+------+--------+---------------------------------------------+
| 12 | 1576 | looking down on the beach from Beach Street |
| 10 | 1555 | This is a beach |
| 11 | 1555 | photo of Beach Street |
+------+--------+---------------------------------------------+
如何匹配包含“海滩”的文档,但不是当它只是“海滩街”短语的一部分时。
这类作品:
sphinxQL> select * from rttest where match('beach -"beach street"');
+------+--------+-----------------+
| id | weight | value |
+------+--------+-----------------+
| 10 | 1527 | This is a beach |
+------+--------+-----------------+
但理想情况下,我们也应该得到文件 12。因为我们也有自己的海滩。
从海滩街俯瞰海滩
仅排除短语,排除所有包含该短语的文档,无论它们是否也仅匹配单个关键字。
像'NOT NEAR'这样的东西是理想的:
sphinxQL> select * from rttest where match('beach -NEAR/1 street');
ERROR 1064 (42000): index rttest: syntax error, unexpected TOK_NEAR near 'NEAR/1 street'
但由于我们没有,还有其他方法吗?(除了后期处理;)