使用 Sphinx 搜索字段中的最后一个词?
Search on last word in a field using Sphinx?
我正在使用 SphinxQL 来准备 Sphinx 搜索(实际上是 NOT 运算符的一部分)但是我无法使用 Mysql 做一些非常简单的事情:比如 '% Word'。我只需要知道某个特定词什么时候是 field/string 中的最后一个词,但 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,但本质上是我想要实现的目标。
有字段结束修饰符,可以专门匹配a字段的最后一个词。
... WHERE MATCH('@(Description) Fox Dog$')
只会让你找到最后一个词是狗的匹配项。如果需要最后两个(或更多!)单词,请使用短语标记。
... WHERE MATCH('@(Description) "Fox Dog$ " ')
但是还是没有断言,匹配这个,EXCEPT当它是硬道理的时候
... WHERE MATCH('@(Description) Fox Dog$ -Dog$')
将执行,很可能会排除 'valid' 匹配项。
我正在使用 SphinxQL 来准备 Sphinx 搜索(实际上是 NOT 运算符的一部分)但是我无法使用 Mysql 做一些非常简单的事情:比如 '% Word'。我只需要知道某个特定词什么时候是 field/string 中的最后一个词,但 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,但本质上是我想要实现的目标。
有字段结束修饰符,可以专门匹配a字段的最后一个词。
... WHERE MATCH('@(Description) Fox Dog$')
只会让你找到最后一个词是狗的匹配项。如果需要最后两个(或更多!)单词,请使用短语标记。
... WHERE MATCH('@(Description) "Fox Dog$ " ')
但是还是没有断言,匹配这个,EXCEPT当它是硬道理的时候
... WHERE MATCH('@(Description) Fox Dog$ -Dog$')
将执行,很可能会排除 'valid' 匹配项。