我在symfony 2应用程序(https://github.com/timewasted/Search-SphinxsearchBundle)中使用了一个sphinx包(timewasted SphinxSearchBundle)(基于PHP API)
只要我不尝试使用SPH_MATCH_EXTENDED,它就能很好用。
这是一个代码示例
$sphinxSearch = $this->get('search.sphinxsearch.search');
$sphinxSearch->setMatchMode(SPH_MATCH_EXTENDED);
$searchResults = $sphinxSearch->search("@typemesure_id 2", $index);
但结果总是空的,似乎我的字段(@typemesure_id)被视为一个单词:
'words' =>
array
'typemesure_id' =>
array
'docs' => string '0' (length=1)
'hits' => string '0' (length=1)
2 =>
array
'docs' => string '4169' (length=4)
'hits' => string '5714' (length=4)
有人知道我的请求中有什么问题吗? 任何人都可以发布使用此捆绑包的工作扩展查询的例子吗?
我的目标是获得类似“@(user1,user2,user3)15”
的条件感谢您的帮助
注意: SPH_MATCH_ALL& SPH_MATCH_ANY工作正常。 setFilter()方法也在工作
答案 0 :(得分:1)
查看功能定义......
public function search($query, array $indexes, array $options = array(), $escapeQuery = true)
它将自动转义查询,因此@将被转义。需要传递false作为第四个参数