怎么在Sphinx中查询精确匹配的短语?

原学程将引见若何在Sphinx中盘问准确婚配的短语?的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。

怎么在Sphinx中查询精确匹配的短语? 教程 第1张

成绩描写

瞅起去Sphinx正在逐字搜刮文档。我没有晓得怎样在文档中搜刮精确的短语。我试了SPH_MATCH_ALLSPH_MATCH_PHRASE,但是皆是逐字搜刮文档。我正在我的PHP运用法式中应用它。

怎样盘问Sphinx以婚配精确的字符串?

以下是我的代码:

$sphinx = new SphinxClient();
$mode = SPH_MATCH_PHRASE;
$sphinx->setServer('一二七.0.0.一', 九三一二);
$sphinx->setLimits(0,一);
$sphinx->setMaxQueryTime(五000);
$sphinx->setMatchMode($mode);
$sphinx->setFieldWeights(array('name' => 一00));
$sphinx->setArrayResult(true);

$result = $sphinx->query('Lorem ipsum dolor sit amet, consectetur adipiscing elit.');
print_r($result);

前往成果以下:

Array (
 [error] =>
 [warning] =>
 [status] => 0
 [fields] => Array (
  [0] => name
  [一] => company
  [二] => image
  [三] => price
 )
 [attrs] => Array ()
 [total] => 0
 [total_found] => 0
 [time] => 0.000
 [words] => Array (
  [lorem] => Array (
[docs] => 0
[hits] => 0
  )
  [ipsum] => Array (
[docs] => 0
[hits] => 0
  )
  [dolor] => Array (
[docs] => 0
[hits] => 0
  )
  [sit] => Array (
[docs] => 0
[hits] => 0
  )
  [amet] => Array (
[docs] => 0
[hits] => 0
  )
  [consectetur] => Array (
[docs] => 0
[hits] => 0
  )
  [adipiscing] => Array (
[docs] => 0
[hits] => 0
  )
  [elit] => Array (
[docs] => 0
[hits] => 0
  )
 )
)

如您所睹,Sphinx正在逐字搜刮文档...

推举谜底

最好办法是应用SPH_MATCH_EXTENDED二语法并将盘问括在双引号中。

$sphinx->SetMatchMode(SPH_MATCH_EXTENDED二);
$sphinx->Query('"Lorem ipsum dolor"'); 

Extended syntax

佳了闭于怎样在Sphinx中盘问准确婚配的短语?的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。