4.Elasticsearch—索引的创建及查询(一)

一、索引的原理

参考文档:Elasticsearch倒排索引结构

二、索引的创建和删除

索引创建可以使用curl命令,或者在head插件的可视化网页上,也可以使用工具,例如postman。我使用的是postman。(Windows环境下)

  • 使用curl命令
    • 首先是配置两个参数:number_of_shards参数是表示索引的分片数,number_of_replicas参数表示索引的备份分片数。索引的一些其他的参数设置可以参考官网
    • 然后是配置索引的mapping,mapping中字符串类型的字段有一个index选项,之前的版本有三个值
      • analyzed: 默认。这个值,ES分析器会将该字段所有字符转为小写,并将字符串分解为单词。匹配时对每个词进行完整匹配。
      • not_analyzed: 不分析,整个字符串被当做一个整体,进行精准匹配。
      • no: 不在该字段上建索引。
    • 6.x的版本以后没有了string类型,可以将字段设置为keyword,表示进行精确分配。例如下面的author字段。而index选项只能设置是或者否。否表示不在该字段设置索引。
curl -XPUT "localhost:9200/index_name/" -d  
"{
    \"settings\": {
        \"index\": {
            \"number_of_shards\": 5,
            \"number_of_replicas\": 1
        }
    },
    \"mappings\": {
            \"properties\": {
                \"date\": {
                    \"format\": \"yyyy-MM-dd\",
                    \"type\": \"date\"
                },
                \"publish\": {
                    \"type\": \"string\",
                    \"index\": \"false\"
                },
                \"name\": {
                    \"type\": \"text\"
                },
                \"author\": {
                    \"type\": \"keyword\"
                }
            }
    }
}"

注:在7.x版本里,创建索引设置mappings(映射,即数据将会是什么结构)时不能指定类型,默认是_doc;具体有关映射的内容可以参考官方文档

  • 使用postman,这种更直观,写json更方便,还能实时发现自己脚本里的错误。
    使用postman创建索引

注:索引中设置分词器、slice数量等其他配置等以后用到了再发文更新


三、索引中数据的查询
  • 这里简单展示两种查询的方法,term是精确匹配,而match可以匹配带有该字符串的数据。具体有什么区别可以自己实践感受一下。
    1.使用match方法查询
    使用match查询.png
    2.使用term方法查询
    term方法查询.png
  • 使用通配符和正则表达式查询可参考:博客(https://blog.csdn.net/dm_vincent/article/details/42024799)
  • 具体的查询索引中数据的方法可参考官方文档

注:后面的文再更新更深入的一些搜索

你可能感兴趣的:(4.Elasticsearch—索引的创建及查询(一))