mysql - Elasticseach 将 sql 更改为 Query with ONGR\ElasticsearchDSL
问题描述
我正在尝试将 mysql-query 转换为 Elasticsearch 的查询,但我认为我走错了路。
mysql 查询如下所示:
WHERE foo = 0 OR (foo = 1 AND bar LIKE "%blub%")
Elasticseach-query 的创建方式如下:
$fieldFoo = 'attributes.core.foo.raw';
$fieldBar = 'attributes.core.bar.raw';
$firstQuery = new BoolQuery();
$firstQuery->add(new TermQuery($fieldBar, "0"), BoolQuery::SHOULD);
$secondQuery = new BoolQuery();
$secondQuery->add(new WildcardQuery($fieldFoo, "*" . $value . "|*"));
$secondQuery->add(new TermQuery($fieldBar, "1"));
$firstQuery->add($secondQuery, BoolQuery::MUST);
$search->addQuery($query);
但这一个不起作用。接下来我可以尝试什么?
解决方案
以下解决方案现在有效:
$fieldFoo = 'attributes.core.foo.raw';
$fieldBar = 'attributes.core.bar.raw';
$query = new BoolQuery();
$firstQuery = new BoolQuery();
$firstQuery->add(new TermQuery($fieldBar, "0"), BoolQuery::SHOULD);`enter code here`
$secondQuery = new BoolQuery();
$secondQuery->add(new WildcardQuery($fieldFoo, "*" . $value . "|*"), BoolQuery::SHOULD);
$secondQuery->add(new TermQuery($fieldBar, "1"), BoolQuery::SHOULD);
$firstQuery->add($secondQuery, BoolQuery::SHOULD);
$query->add($firstQuery, BoolQuery::MUST);
推荐阅读
- apache - www 不会重定向到带有 https 的非 www
- azure-ad-b2c - B2C 自定义策略 - 如何从 Selfasserted DataUri 登录页面显示注册链接
- java - 来自Playstore黑屏的Android aab。无法销毁活动 {com./com..MainActivity}:java.lang.NullPointerException:
- python-3.x - 反向整数python
- jenkins-pipeline - Jenkins 动态管道未显示 BlueOcean 中的所有阶段
- html - 如何阻止我的滚动条推动我的标题?
- scala - Scala:错误:未找到:值 MutableList val ReviewsList = MutableList [Review]()
- facebook - Facebook 数据删除请求回调
- react-native - 多个navigation.push同一个屏幕总是到列表的最后一个
- pandas - 当要拆分的字符串数量不确定时,在分隔符上拆分数据框列