首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Elastica PHP查询Where或

Elastica PHP查询Where或
EN

Stack Overflow用户
提问于 2015-06-14 23:15:58
回答 1查看 1.2K关注 0票数 0

如何使用Elastica进行WHERE categoryId = 1 OR categoryId = 2查询?我正在做这个,但我得到了0 result

代码语言:javascript
运行
复制
    $query = new \Elastica\Query();
    $boolOr = new \Elastica\Filter\BoolOr();
    $boolOr->addFilter(new \Elastica\Filter\Term(array('categoryId' => '1')));
    $boolOr->addFilter(new \Elastica\Filter\Term(array('categoryId' => '2')));
    $filtered = new \Elastica\Query\Filtered(new \Elastica\Query\MatchAll(), $boolOr);
    $query->setQuery($filtered);
    $products = $type->search($query)->getResults();
EN

回答 1

Stack Overflow用户

发布于 2015-07-07 16:46:38

下面是一个有效的示例:

代码语言:javascript
运行
复制
$index = $this->_createIndex();
$type = $index->getType('test');

$doc1 = new Document('', array('categoryId' => 1));
$doc2 = new Document('', array('categoryId' => 2));
$doc3 = new Document('', array('categoryId' => 3));

$type->addDocument($doc1);
$type->addDocument($doc2);
$type->addDocument($doc3);

$index->refresh();

$boolOr = new \Elastica\Filter\BoolOr();
$boolOr->addFilter(new \Elastica\Filter\Term(array('categoryId' => '1')));
$boolOr->addFilter(new \Elastica\Filter\Term(array('categoryId' => '2')));

$resultSet = $type->search($boolOr);

您不需要使用筛选和匹配查询。可以在以下位置找到工作示例:https://github.com/ruflin/Elastica/pull/887/files

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30831031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档