悟空,拿我的打狗棒来

新手求教,elasticsearch的查询语法该怎么写

Elasticsearch | 作者 hyf3119641 | 发布于2017年09月28日 | 阅读数:4685

比如这条sql: "select * from aaa where name like '%abcd efg%';"
在elasticsearch下应该怎么表达like,并且查到的abcd和efg是同时出现的,而不是单独一个也能出现在结果集中
已邀请:

白衬衣 - 金桥

赞同来自: zhengtong0898

phrase 应该也能满足需求。
GET /my_index/my_type/_search { "query": { "match_phrase": { "name": "abcd efg" } } }

zhengtong0898

赞同来自:

like 的表达可以用 wildcard 或者 regexp 关键字.

Elasticsearch 2.x 版本
# regexp
curl -XGET http://localhost:9200/your_index/_search -d "

{
"query": {

"regexp": {
"name": ".*abcd efg.*"
}
}
}

"


# wildcard
curl -XGET http://localhost:9200/your_index/_search -d "

{
"query": {

"wildcard": {
"name": "*abcd efg*"
}
}
}

"
 
Elasticsearch 5.x 版本
# regexp
curl -XGET http://localhost:9200/your_index/_search -d "

{
"query": {

"regexp": {
"name.keyword": ".*abcd efg.*"
}
}
}

"


# wildcard
curl -XGET http://localhost:9200/your_index/_search -d "

{
"query": {

"wildcard": {
"name.keyword": "*abcd efg*"
}
}
}

"

laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自:

同楼上,wildcard就能满足要求

hyf3119641

赞同来自:

谢谢大家了,试过可以的

要回复问题请先登录注册