使用Sphinx搜索字段中的最后一个单词?

时间:2015-12-30 12:58:48

标签: sphinx

我使用SphinxQL来准备Sphinx搜索(事实上是NOT运算符的一部分)但是我无法用Mysql做一些非常简单的事情:比如'%Word'。我只需要知道某个特定单词何时是字段/字符串中的最后一个单词,但SphinxQL似乎并不适用于此。

The quick brown fox jumped over the lazy dog.
Lazy Dog day afternoons

我基本上希望搜索

select  Description from idx_Table WHERE (MATCH('@(Description) Fox Dog (not like '% Dog'))

我知道上面的SphinxQL根本不合适,但基本上就是我想要实现的目标。

1 个答案:

答案 0 :(得分:0)

有一个字段结束修饰符,因此可以专门匹配字段中的最后一个字。

... WHERE MATCH('@(Description) Fox Dog$')

只会在最后一个单词是Dog的地方找到匹配。如果想要最后两个(或更多!)单词,请使用短语标记。

... WHERE MATCH('@(Description) "Fox Dog$ " ')

但是仍然没有断言要说,匹配这个,除非它是最后一个字

... WHERE MATCH('@(Description) Fox Dog$ -Dog$')

会执行,可能会排除'有效'火柴。