elasticsearch 如何将一个搜索需求实现?

elasticsearch 如何将一个搜索需要实现?

举例说明:
我有一个数据表内容如下:
id,title
1 这是一个关于美国人的故事
2 英国人23年都吃什么
3 美国有多少个州
4 哪个国家的黑人多
5 美国2023年失业人数
6 23年失业的英国人数

然后我要搜索以下几个词(或者我想搜索上表中能分出词的相关关键词) 黑人,美国,23年失业人数

以上该如休建表的索引,才能实现搜索相关词返回靠谱结果,网上看了不少视频也没整明白到底该如何实现,求大佬们白话说明

阅读 694
1 个回答
✓ 已被采纳

Elasticsearch 安装ik扩展 (根据你自己Es使用版本,安装对应的ik分词器)

mapping

  {
    "id": {
        "type" : "integer",
        "index":"not_analyzed"
    },
    "title":{
        "type" : "string",
        "index" : "analyzed",
        "analyzer" : "ik_smart"
    }
  }

ik_smart or ik_max_word 自行尝试

搜索

GET /_search
{
    "query": {
        "match" : {
            "title" : "美国 黑人"
        }
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进