我的索引中有这个:“碎牛肉”。
这是我的配置:
settings:
index:
analysis:
analyzer:
index_analyzer:
tokenizer: whitespace
filter: [lowercase, asciifolding, word_delimiter, snowball]
这就是我搜索的方式:
$query = new \Elastica\Query;
$boolQuery = new \Elastica\Query\Bool;
$matchQuery = new \Elastica\Query\Match;
$filter = new \Elastica\Filter\Term(array('visible' => 'true'));
$termQuery = new \Elastica\Query\Term;
$termQuery->setTerm('locale_id', $localeId);
$matchQuery->setFieldQuery('name', $name);
$matchQuery->setFieldParam('name', 'type', 'phrase_prefix');
$boolQuery->addMust($termQuery);
$boolQuery->addMust($matchQuery);
$query->setQuery($boolQuery);
$this->finder->findPaginated($query, array('from' => $from, 'size' => $size));
一切都像魅力一样。
如果我搜索“碎牛肉”,我会得到我的实体。如果我搜索“牛肉粉”,则不会返回任何内容。
有人有想法吗?