elasticsearch,elastica,Lucene,elasticsearch,Elastica" /> elasticsearch,elastica,Lucene,elasticsearch,Elastica" />

Lucene Elasticsearch使用空格搜索精确查询

Lucene Elasticsearch使用空格搜索精确查询,lucene,elasticsearch,elastica,Lucene,elasticsearch,Elastica,我希望搜索返回与查询字符串完全匹配的结果。 查询字符串包含2个单词 查询:“普通医生”应仅返回普通医生而不是“普通医生” 搜索方法: $lower = 'general doctor'; $query = new \Elastica\Query\MatchAll(); $tagquery = new \Elastica\Query\Match(); $tagquery->setDefaultField('branchslug'); $tagquery->setFieldBoost

我希望搜索返回与查询字符串完全匹配的结果。 查询字符串包含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();
索引映射:

我解决了这个问题

$lower = '"general doctor"';
而不是

$lower = 'general doctor';
我解决了这个问题

$lower = '"general doctor"';
而不是

$lower = 'general doctor';
我解决了这个问题

$lower = '"general doctor"';
而不是

$lower = 'general doctor';
我解决了这个问题

$lower = '"general doctor"';
而不是

$lower = 'general doctor';

我知道你回答了自己的问题,但这可能有用

Lucene查询语法
我知道你回答了自己的问题,但这可能有用

Lucene查询语法
我知道你回答了自己的问题,但这可能有用

Lucene查询语法
我知道你回答了自己的问题,但这可能有用

Lucene查询语法