全文检索 ElasticSearch整理2 创建索引到模糊搜索

当ElasticSearch正常启动后,我们就可以利用Kibana图形化界面进行对ElasticSearch的简单使用

1、创建一个索引

PUT huaifeng # 创建一个索引 索引名称为huaifeng
{
  "mappings": { # 以映射的方式创建
    "properties": { # 映射的参数
      "title":{ # 参数名称
        "type": "text" # 参数的类型
      },
      "id":{
        "type": "integer"
      },
      "type":{
        "type": "keyword"
      }
    }
  }
}

text类型为可以进行分词搜索的,示例:

title的内容是:创建索引到模糊搜索

我们可以直接搜索“创建搜索”。这时搜索的其实是以:创、创建、创建搜、创建搜索、建搜索、搜索、索;这样的搜索方式进行检索你创建的文档。

integer类型是整形数字

keyword类型为关键字类型,关键字类型类似sql中的 where title=”keyword”的样子

2、给索引中写入一个文档

POST huaifeng/_doc/1 # POST方式接受 索引名称/我要写入文旦/该文档的唯一id
{
  "title": "这是一个测试的索引text类型的内容",
  "id": 1, # 这个是该文档的自定id
  "type": "这是该文档的keyword类型的内容"
}

3、全文检索

GET /_search # get方式接受数据 /搜索
{
  "query": { # 映射方式进行全文检索
    "match": { # 进行分词搜索
      "title": "测试索引t" # ‘要搜索的字段’: '要搜索的内容'
    }
  }
}

执行后的结果:

{
  "took" : 7,
  "timed_out" : false,
  "_shards" : {
    "total" : 1, # 匹配的结果总数量
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 1,
      "relation" : "eq"
    },
    "max_score" : 1.1507283,
    "hits" : [ # 搜索出来的结果集
      {
        "_index" : "huaifeng",
        "_id" : "1",
        "_score" : 1.1507283,
        "_source" : {
          "title" : "这是一个测试的索引",
          "id" : 1,
          "type" : "这个索引指向的表"
        }
      }
    ]
  }
}

4、按照文档id排序后进行分页

POST /huaifeng/_search #搜索
{
  "size": 5, # 每页显示的条数
  "from": 10, # 从第几条开始
  "query": { # 查询
    "match": { # 模糊查询
      "title": "搜索" # 查询的条件
    }
  },
  "sort" :  # 排序
  [
    { 
      "id":  # 按照文档id排序
        {
          "order" : "asc" # 排序方式 正序asc 倒序desc
        }
    }
  ]
}

下一页的时候,只需要更改 from 的数量即可。

上一篇
下一篇