我希望我的搜索返回我的查询字符串的完全匹配。 查询字符串包含2个单词。
查询:“普通医生”应该只返回普通医生而不是“医生一般”
搜索方法:
$lower = 'general doctor';
$query = new \Elastica\Query\MatchAll();
$tagquery = new \Elastica\Query\Match();
$tagquery->setDefaultField('branchslug');
$tagquery->setFieldBoost('branchslug', 10);
$tagquery->setQuery(mb_strtolower($lower, 'UTF-8'));
$tagfilter = new \Elastica\Filter\Nested();
$tagfilter->setPath('expertdetailbranchid');
$tagfilter->setQuery($tagquery);
$tagfilter->setCached();
$filterBoolArticle = new \Elastica\Filter\Bool();
$filterBoolArticle->addMust($tagfilter);
$filterBoolArticle->setCached();
答案 0 :(得分:2)
我解决了问题。
$lower = '"general doctor"';
而不是
$lower = 'general doctor';
答案 1 :(得分:1)
我知道你回答了自己的问题,但这可能有用......