Elastic Search Nest研究(二)--增删改查入门

摘要:
增删改查入门使用postman工具进行一系列的入门操作索引1.创建索引PUThttp://localhost:9200/news配置分片1副本0,先进行单机测试。2.删除索引DELETE请求http://localhost:9200/news分词1.测试默认分词效果POST请求http://localhost:9200/news/_analyze可以测试news索引库的默认分词效果可以看出对于汉字

增删改查入门

使用postman工具进行一系列的入门操作

索引
1. 创建索引

PUThttp://localhost:9200/news 配置分片1 副本0,先进行单机测试。

Elastic Search Nest研究(二)--增删改查入门第1张

2. 删除索引

DELETE请求http://localhost:9200/news

Elastic Search Nest研究(二)--增删改查入门第2张

分词
1. 测试默认分词效果

POST请求http://localhost:9200/news/_analyze 可以测试news索引库的默认分词效果

Elastic Search Nest研究(二)--增删改查入门第3张

可以看出对于汉字的分词是每一个字都被分开的,对于我们汉语的使用习惯来说,我们更希望按照常见的词语来进行分组,这时候我们就需要一个ik分词器的插件

2. 安装ik插件

ik分词器(Github地址:https://github.com/medcl/elasticsearch-analysis-ik)

下载对应版本的zip包后直接解压到es安装目录下的plugins目录下,并且重命名为ik目录。

这里我们还是下载7.0版的分词器,对应于7.0版本的es

Elastic Search Nest研究(二)--增删改查入门第4张

重新启动es加载ik插件

Elastic Search Nest研究(二)--增删改查入门第5张

3. 测试ik分词效果

POST请求http://localhost:9200/news/_analyze 测试下ik分词的效果

Elastic Search Nest研究(二)--增删改查入门第6张

ik分词的两种模式

  • ik_max_word

    会将文本做最细粒度的拆分,如将“中华人民共和国人民大会堂”拆分为“中华人民共和国、中华人民、中华、华人、人民共和国、人民、共和国、大会堂、大会、会堂等词语。

  • ik_word

    会做最粗粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为中华人民共和国、人民大会堂。

映射
1. 映射的概念和数据类型

创建映射其实就是向索引库创建field的过程。既然是创建字段(field)就要同时指定好字段的类型。

es中常见的字段类型如下:

Elastic Search Nest研究(二)--增删改查入门第7张

针对我们经常使用到的字符串类型text进行如下的解析

1) analyzer属性指定分词器默认是'standard'

如下是指定使用ik细粒度分词

"name": { "type": "text", "analyzer":"ik_max_word" }

索引和搜索的分词器也可以分开

如下表示在索引的时候使用ik_max_word搜索的时候使用ik_smart分词器

"name": { "type": "text", "analyzer":"ik_max_word", "search_analyzer":"ik_smart" }

2) index属性指定是否索引

2. 创建映射

POST请求http://localhost:9200/news/_mapping

{
    "properties": {
    	 "id": {
            "type": "long"
        },
        "title": {
            "type": "text",
            "analyzer": "ik_max_word",
            "search_analyzer": "ik_smart"
        },
         "content": {
            "type": "text",
            "analyzer": "ik_max_word",
            "search_analyzer": "ik_smart"
        },
         "author": {
            "type": "keyword"
    	 },
         "createTime": {
            "type": "date",
            "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
        }
    }
}

Elastic Search Nest研究(二)--增删改查入门第8张

3. 查询映射

GET请求http://localhost:9200/news/_mapping

Elastic Search Nest研究(二)--增删改查入门第9张

document 文档
1. 添加文档

Elastic Search Nest研究(二)--增删改查入门第10张

2. 文档简单查询

简单查询就是通过url传递查询参数,发送get请求到es进行查询

格式:get ../_search?q=.....

q是搜索字符串

  • 根据Id查询,因为我们创建了id字段的,因此不使用默认的id

    GET http://localhost:9200/news/_doc/_search?q=id:1

  • 查询所有

    GET http://localhost:9200/news/_doc/_search

  • 查询title中包含开发的记录

    GET http://localhost:9200/news/_doc/_search?q=title:开发

  • 查询author是lucy的记录

    GET http://localhost:9200/news/_doc/_search?q=author:lucy

3. 查询结果解析
{
    "took": 1,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 1,
            "relation": "eq"
        },
        "max_score": 0.2876821,
        "hits": [
            {
                "_index": "news",
                "_type": "_doc",
                "_id": "890E_3YBGmz_qzUptekm",
                "_score": 0.2876821,
                "_source": {
                    "id": 1,
                    "title": "Bootstrap开发",
                    "content": "Bootstrap是由Twitter 推出的一个前台页面开发框架,是一个非常流行的开发框架,此框架集成了多种页面效果。此开发框架包含了大量 的CSS、JS程序代码,可以帮助开发者(尤其是不擅长页面开发的程序人员)轻松的实现一个不受浏览器限制的精 美界面效果。",
                    "author": "lucy",
                    "createTime": "2020-12-25"
                }
            }
        ]
    }
}

took:本次操作花费的时间,单位为毫秒。

timed_out:请求是否超时

_shards:说明本次操作共搜索了哪些分片

hits:搜索命中的记录

hits.total : 符合条件的文档总数

hits.hits :匹配度较高的前N个文档

hits.max_score:文档匹配得分,这里为最高分

_score:每个文档都有一个匹配度得分,按照降序排列。

_source:显示了文档的原始内容。

免责声明:文章转载自《Elastic Search Nest研究(二)--增删改查入门》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android编译大全(五)C++预定义宏下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MySQL/MariaDB数据库的索引工作原理和优化

MySQL/MariaDB数据库的索引工作原理和优化 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 实际工作中索引这个技术是影响服务器性能一个非常重要的指标,因此我们得花时间去了解一下索引的相关特性。索引是一把双刃剑用得好可以快速查询数据,用得不好数据库查询速度不仅慢还降低服务器性能,浪费磁盘空间。 一.索引概述 1>.什么是索引...

(转)AppiumLibrary基本操作

*** Settings ***Library AppiumLibraryLibrary CollectionsLibrary StringLibrary Dialogs*** Test Cases ***打开appComment Open Applicationhttp://localhost:4723/wd/hubalias=tudouapp plat...

javascript 获取当前页面的URL

如图所示:点击录入按钮实际的请求路径是“http://localhost:8081/dodiscovery/ordertaoziController.do?goAdd&_=1622601413035” 接下来测试js脚本获取url路径中的不同信息 1、获取完整URL var url; url = window.location.href;  结果...

elasticsearch 性能调优

所有的修改都可以在elasticsearch.yml里面修改,也可以通过api来修改。推荐用api比较灵活 1.不同分片之间的数据同步是一个很大的花费,默认是1s同步,如果我们不要求实时性,我们可以执行如下: $ curl -XPUT 'http://localhost:9200/twitter/' -d '{ "settings" : {...

PHP漏洞之session会话劫持

本文主要介绍针对PHP网站Session劫持。session劫持是一种比较复杂的攻击方法。大部分互联网上的电脑多存在被攻击的危险。这是一种劫持tcp协议的方法,所以几乎所有的局域网,都存在被劫持可能。 服务端和客户端之间是通过session(会话)来连接沟通。当客户端的浏览器连接到服务器后,服务器就会建立一个该用户的session。每个用 户的sessio...

java List接口一

一 List接口概述   查阅API,看List的介绍。有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的 插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的 元素。与 set 不同,列表通常允许重复的元素。 看完API,我们总结一下:   List接口:   它是一个元素存取有序的集合...