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使用的更多相关文章

  1. elastic search查询命令集合

    Technorati 标签: elastic search,query,commands 基本查询:最简单的查询方式 query:{"term":{"title" ...

  2. elastic search 学习笔记

    Elastic search在数据分析的应用中相当于一个数据库的搜索引擎. 跟MySQL类似,它有自己的查询语言,只不过不是关系型数据库,属于NoSQL. 可以根据索引从分布式服务器文件系统中快速存取 ...

  3. elastic search 学习 一

    初步阅读了elastic search 的文档,并使用command实践操作. 大概明白其概念模型.

  4. 分库分表后跨分片查询与Elastic Search

    携程酒店订单Elastic Search实战:http://www.lvesu.com/blog/main/cms-610.html 为什么分库分表后不建议跨分片查询:https://www.jian ...

  5. 自学elastic search

    工作也有一段时间了,虽然来这个公司之后学会了几门不同的语言,但想拨尖还是任重道远. 想往高级程序员甚至是架构师方向发展.他仍然是我的学习对象.我现在做着的,无非是他玩剩下的罢了. luncene之前有 ...

  6. Elastic Search 上市了,市值翻倍,这群人财务自由了!

    国庆长假,大部分人还深浸在风花雪月之中,而就在昨天(美国时间10月5号),我们 Java 程序员所熟知的大名鼎鼎的 Elastic Search 居然在美国纽约证券交易所上市了! 当说到搜索时,大部分 ...

  7. Elastic Search 安装和配置

    目标 部署一个单节点的ElasticSearch集群 依赖 java环境 $java -version java version "1.8.0_161" Java(TM) SE R ...

  8. [elastic search][redis] 初试 ElasticSearch / redis

    现有项目组,工作需要. http://www.cnblogs.com/xing901022/p/4704319.html Elastic Search权威指南(中文版) https://es.xiao ...

  9. elastic search文档详解

    在elastic search中文档(document)类似于关系型数据库里的记录(record),类型(type)类似于表(table),索引(index)类似于库(database). 文档一定有 ...

  10. elastic search 查询

    eelastic search主要有两种查询方式,一种是查询字符串,一种是请求体(json格式)查询. 查询字符串: 查询字符串的功能相对简单,使用容易. 比如GET http://localhost ...

随机推荐

  1. ld -l选项注意事项

    在程序中用到某个静态库,使用命令: gcc bin -llibrary.a object.o 结果发现找不到library.a中的某些函数符号 undefine reference to ... 通过 ...

  2. Linux定时备份数据到百度云盘

    导读:如今的百度云盘免费容量都是2T了,即使把电脑上所有的东东都放上去,也还有大把的剩余空间.对于站长来说,是完全可以充分利用这些硬盘空间的,现在我们就用百度云盘来备份Linux服务器上的数据. 一直 ...

  3. Jquery学习笔记(9)--注册验证复习(未用到ajax)

    纯复习,在$(this).val()这里浪费了时间,val()只适合input里面的value值,如果是span等标签里包裹的文本要用text()!! <!DOCTYPE html> &l ...

  4. Jquery学习笔记(4)--checkbox全选反选

    可能有浏览器兼容性,注意html里的checked是一个属性,存在就默认选中. <!DOCTYPE html> <html lang="en"> <h ...

  5. 数据库设计(六)第二范式(2NF)?

    For a table to be in the Second Normal Form, it must satisfy two conditions: The table should be in ...

  6. Android显示GIF动画(转载)

    GifView 是一个为了解决android中现在没有直接显示gif的view,只能通过mediaplay来显示这个问题的项目,其用法和 ImageView一样,支持gif图片 使用方法: 1-把Gi ...

  7. SQL语句教程

    SQL指令 SELECT DISTINCT WHERE AND OR IN BETWEEN LIKE ORDER BY 函数 COUNT GROUP BY HAVING ALIAS 表格链接 外部链接 ...

  8. 从以下哪一个选项中可以获得Servlet的初始化参数。

    从以下哪一个选项中可以获得Servlet的初始化参数. A.Servlet B.ServletContext C.ServletConfig D.GenericServlet 解答:C servlet ...

  9. 8148 add spi driver

    http://blog.csdn.net/zouwen198317/article/details/8452209 http://e2e.ti.com/support/dsp/davinci_digi ...

  10. PDF解析。。。

    解析出PDF中的文字.用项目名称作Key取对应的值.. 正则匹配 .....:..\n