0

検索でクエリ文字列と完全に一致するものが返されるようにします。クエリ文字列には 2 つの単語が含まれます。

query :"general doctor" は、"doctor general" ではなく、general doctor のみを返す必要があります

検索方法:

$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();

インデックス マッピング: http://pastebin.com/JJkc9jq4

4

2 に答える 2

2

問題を解決しました。

$lower = '"general doctor"';

それ以外の

$lower = 'general doctor';
于 2014-02-24T14:20:43.823 に答える
1

私はあなたがあなた自身の質問に答えたことを知っていますが、これは役に立つかもしれません...

Lucene クエリ構文 http://lucene.apache.org/core/4_0_0/queryparser/org/apache/lucene/queryparser/classic/package-summary.html

于 2014-02-24T23:10:29.417 に答える