Elasticsearch或条件这种写法为什么查不出数据?

发布于 2022-09-12 00:01:42 字数 729 浏览 20 评论 0

我想搜类似 select * from table where title like "%中国行%" or doc_content like "%中国行%";
下面这句有啥问题吗?查不出内容。

192.168.33.10:9200/test/_search?pretty
{
    "query": {
        "bool": {
            "should": [
                {
                    "term": {
                        "title": "中国行"
                    }
                },
                {
                    "term": {
                        "doc_content": "中国行"
                    }
                }
            ]
        }
    }
}
{
  "took": 1,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "failed": 0
  },
  "hits": {
    "total": 0,
    "max_score": null,
    "hits": []
  }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

橘味果▽酱 2022-09-19 00:01:42

term是精确匹配,达不到mysql中like的效果,如果你要模糊匹配,应该用match,match会对文本进行分词然后匹配查询:
192.168.33.10:9200/test/_search?pretty
{

"query": {
    "bool": {
        "should": [
            {
                "match": {
                    "title": "中国行"
                }
            },
            {
                "match": {
                    "doc_content": "中国行"
                }
            }
        ]
    }
}

}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文