在Elastic Search之上是否有一个Sql驱动程序允许您使用SQL语法查询ES?它更好地支持更复杂的sql查询,比如两个表之间的连接。
同样的问题也是Solr。
答案 0 :(得分:3)
如果您想让生活复杂化,可以使用熟悉的SQL语法查询elasticsearch。您还可以在SQL中使用ES函数。
https://github.com/NLPchina/elasticsearch-sql
更简单的方法是阅读Elastic文档并熟悉EL提供的更丰富的查询语言https://www.elastic.co/guide/en/elasticsearch/guide/current/index.html
答案 1 :(得分:0)
注意:这尚不支持Joins ...但是90%的时间是我们的救命之路
使用Sql API在Elastic搜索中,我们可以编写查询,也可以将它们转换为Elastic查询
POST /_sql/translate
{
"query": "SELECT * FROM customer where address.Street='JanaChaitanya Layout' and Name='Pavan Kumar'"
}
对此的答复是
{
"size" : 1000,
"query" : {
"bool" : {
"must" : [
{
"term" : {
"address.Street.keyword" : {
"value" : "JanaChaitanya Layout",
"boost" : 1.0
}
}
},
{
"term" : {
"Name.keyword" : {
"value" : "Pavan Kumar",
"boost" : 1.0
}
}
}
],
"adjust_pure_negative" : true,
"boost" : 1.0
}
},
"_source" : {
"includes" : [
"Name",
"address.Area",
"address.Street"
],
"excludes" : [ ]
},
"docvalue_fields" : [
{
"field" : "Age"
}
],
"sort" : [
{
"_doc" : {
"order" : "asc"
}
}
]
}
现在我们可以使用此结果查询弹性搜索 有关更多详细信息,请阅读本文