Sphinx扩展了匹配模式

时间:2014-08-26 07:56:26

标签: php symfony sphinx

我在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()方法也在工作

1 个答案:

答案 0 :(得分:1)

查看功能定义......

public function search($query, array $indexes, array $options = array(), $escapeQuery = true)

它将自动转义查询,因此@将被转义。需要传递false作为第四个参数