elastic search使用
elastic使用
使用python时注意保持一个好习惯:不要使用类似str、type这样的变量名,很容易引发错误:
https://blog.csdn.net/lifelegendc/article/details/55051374
每启动的一个elastic search相当于创建一个节点node(多个节点可以构成一个集群cluster)
每个节点中有若干个索引index(相当于RMDB中的数据库)
创建index的方法
put方法:/index名
查询所有index
get方法:/_cat/indices?v
每个索引中有若干个文档document,相当于一条数据,只不过文档的格式不是固定的,只要符合json格式就好
http://www.ruanyifeng.com/blog/2017/08/elasticsearch.html
编写脚本发送get/post/put/delete请求到elasticsearch(也可直接使用chrome的插件Postman
获取index:
Get Host/_cat/indices?v
创建index:
Put host/indexname
成功:{"acknowledged":true,"shards_acknowledged":true} 注意!key是acknowledged,而不是acknowledge,不要漏掉了d!
删除index:
Delete host/indexname
获取mapping:
Get Host/_mapping
Get Host/indexname/_mapping
Get Host/indexname/typename/_mapping
获取document:
Get host/indexname/typename/document_id(单个)
Get host/indexname/typename/_search(所有)
创建/修改document:
Put host/indexname/typename/document_id
json=data
headers=headers
注意:
1、使用python3的requests包的put方法时,如果要put json数据,requests.put中应该把json类型的json数据赋给json参数。
(之前我直接把字符串类型的json数据赋给data参数,英文下是可以put的,但是如果put中文就会出现难以解决的编码错误)
(之前我还直接把json类型的json数据赋给data参数,则elastic search会报只接受二进制流的错误,见下图)
关于requests.post中json参数和data参数的解释详见help(requests.put)
2、必须指定headers中的ContentType字段为application/json
requests.put(url,json=...,headers=...)
3、Put时,仅指定了url,json和headers字段,可以成功put进去,但elastic会报一个error,暂时不影响使用,可无视:
4、如果elasticsearch返回failtoparse错误,一般来说是路径写错了
删除document:
Delete host/indexname/typename/document_id
中文支持:
Elasticsearch中安装插件。
发送请求的脚本中直接发送中文即可,注意从文件中读取中文时,文件要设定编码,然后读取的脚本中要采用对应的编码:
string=""
with open("querystr.txt",encoding='utf-8') as file:
string=file.read()
查询index:
Post host/indexname/typename/_search
json=data
headers=headers
不加headers会报content-type header错误:
将json类型的json数据赋给data参数而不是json参数时,会报parse error错误:
蓝色表示自定义的内容
查询title字段恰好为222的document,多种方式:
法一:
Post Host/indexname/typename/_search?pretty=true
{"query":{"match":{"title":"222"}}}
法二:
Get Host/indexname/typename/_search?pretty=true&q=222
Elastic search默认检索规则:
1、默认只能对document中第一次层的key对应的value进行检索
2、划分规则:对于英文,默认按单词(即按空格)划分,默认无法检索单词的一部分。
3、划分规则:对于中文,默认按字(即每个字都分开)划分,因而可以检索中文词的一部分。
4、匹配规则:
match:英文:有两个完全相同的单词,匹配成功。中文,有两个完全相同的字,匹配成功;但是符号除外,即只有两个完全相同的符号(例如,),匹配失败。因此match可用匹配中文字和英文单词。
match_phrase:英文:有两个完全相同的词组,则匹配成功。中文,有若干个完全相同且顺序相同的字符,即匹配成功。因此match_phrase可用于匹配中文词/词组和英文词组。
elastic search使用的更多相关文章
- elastic search查询命令集合
Technorati 标签: elastic search,query,commands 基本查询:最简单的查询方式 query:{"term":{"title" ...
- elastic search 学习笔记
Elastic search在数据分析的应用中相当于一个数据库的搜索引擎. 跟MySQL类似,它有自己的查询语言,只不过不是关系型数据库,属于NoSQL. 可以根据索引从分布式服务器文件系统中快速存取 ...
- elastic search 学习 一
初步阅读了elastic search 的文档,并使用command实践操作. 大概明白其概念模型.
- 分库分表后跨分片查询与Elastic Search
携程酒店订单Elastic Search实战:http://www.lvesu.com/blog/main/cms-610.html 为什么分库分表后不建议跨分片查询:https://www.jian ...
- 自学elastic search
工作也有一段时间了,虽然来这个公司之后学会了几门不同的语言,但想拨尖还是任重道远. 想往高级程序员甚至是架构师方向发展.他仍然是我的学习对象.我现在做着的,无非是他玩剩下的罢了. luncene之前有 ...
- Elastic Search 上市了,市值翻倍,这群人财务自由了!
国庆长假,大部分人还深浸在风花雪月之中,而就在昨天(美国时间10月5号),我们 Java 程序员所熟知的大名鼎鼎的 Elastic Search 居然在美国纽约证券交易所上市了! 当说到搜索时,大部分 ...
- Elastic Search 安装和配置
目标 部署一个单节点的ElasticSearch集群 依赖 java环境 $java -version java version "1.8.0_161" Java(TM) SE R ...
- [elastic search][redis] 初试 ElasticSearch / redis
现有项目组,工作需要. http://www.cnblogs.com/xing901022/p/4704319.html Elastic Search权威指南(中文版) https://es.xiao ...
- elastic search文档详解
在elastic search中文档(document)类似于关系型数据库里的记录(record),类型(type)类似于表(table),索引(index)类似于库(database). 文档一定有 ...
- elastic search 查询
eelastic search主要有两种查询方式,一种是查询字符串,一种是请求体(json格式)查询. 查询字符串: 查询字符串的功能相对简单,使用容易. 比如GET http://localhost ...
随机推荐
- Windows编程总结之 DLL
+-- 版本 --+-- 编辑日期 --+-- 作者 -------------+ | V1. | | yin_caoyuan@.com | +----------+--------------+-- ...
- CentOS6.2下Qt5.1.0无法输入中文
因为在程序中需要在界面上输入中文,但是系统是英文系统,没有预装中文输入法,于是从网上搜了一下输入法的安装,但是输入法安装好之后,可以再系统中输入中文,但是却无法再Qt中输入中文,只能继续找解决办法 安 ...
- man手册页
man手册页不同页对应的内容: 区段1:用户指令区段2:系统调用区段3:程序库调用区段4:设备区段5:文件格式区段6:游戏区段7:杂项区段8:系统指令区段9:内核内部指令区段n:Tcl或Tk指令
- C1编译器的实现
总览 词法.语法分析 分析方案 词法 语法 符号表 类型系统 AST 语义检查 EIR代码生成器 MIPS代码生成器 寄存器分配 体系结构相关特性优化 使用说明 编译 运行 总览 C1语言编译器及流程 ...
- EMMC与nand flash的区别
1.NAND Flash 是一种存储介质,要在上面读写数据,外部要加主控和电路设计. 2.eMMC是NAND flash+主控IC ,对外的接口协议与SD.TF卡类似:对厂家而言简化了电路设计,降低了 ...
- hdu5536 Chip Factory 字典树+暴力 处理异或最大 令X=(a[i]+a[j])^a[k], i,j,k都不同。求最大的X。
/** 题目:hdu5536 Chip Factory 链接:http://acm.hdu.edu.cn/showproblem.php?pid=5536 题意:给定n个数,令X=(a[i]+a[j] ...
- C0301 代码块{}的使用,重定向, 从文件中读取行
#!/bin/bash # 从 /etc/fstab 中读行 File=/etc/fstab { read line1 read line2 } < $File # {}代码块, ...
- thinkphp 读取页面报错 说 /Runtime/Cache/Home/XXXXXX.php 错误
thinkphp _STORAGE_WRITE_ERROR_:./Runtime/Cache/Home/xxxx.php 这一种报错一般是在linux 才会出现的错误,因为是权限问题.把Home文件加 ...
- Grodno 2015 (Urozero May 2015 Day 5) D Triangles
给出$P(<=10^9)$, 求有多少个有序三元组$(a, b, c),\ gcd(a, b, c) = 1,\ a + b + c <= P$且以它们构成的三角形中存在某个角是另外一个角 ...
- redhat ent6.5使用centos yum
转载自:http://blog.csdn.net/zhngjan/article/details/20843465 搜狐镜像库:mirrors.sohu.com 163镜像库:mirrors.163. ...