机器 CentOS 6.5

2.2版本改动较大,请按照百度文档安装

创建一个索引

PUT   http://192.168.8.80:9200/customer?pretty

为索引插入一条记录

  curl -XPUT ‘localhost:9200/customer/external/1?pretty’ -d ‘

{ “name”: “John Doe” }


插入好后 读取当前索引内容

http://192.168.8.80:9200/customer/external/1?pretty#


删除一个索引

DELETE  http://192.168.8.80:9200/customer?pretty




一些命令 下面是我一些学习笔记 很多代码是直接在官方文档复制出来的  

官方文档地址 ES文档

查看集群是否健康

http://192.168.8.80:9200/_cat/health?v

curl ‘localhost:9200/_cat/health?v’

查看节点列表

http://192.168.8.80:9200/_cat/nodes?v

curl ‘localhost:9200/_cat/nodes?v’

列出所有索引

http://192.168.8.80:9200/_cat/indices?v

curl ‘localhost:9200/_cat/indices?v’

创建索引  索引名customer 默认会有5个分片 1个索引

curl -XPUT ‘localhost:9200/customer?pretty’


添加一个类型

curl -XPUT ‘localhost:9200/customer/external/2?pretty’ -d ‘

{
“gwyy”: “John Doe”

}’


更新一个类型

curl -XPOST ‘localhost:9200/customer/external/1/_update?pretty’ -d ‘

{
“doc”: { “name”: “Jaffffne Doe” }

}’


删除一条记录

curlXDELETE‘localhost:9200/customer/external/2?pretty’



删除指定name的数据

curl -XDELETE ‘localhost:9200/customer/external/_query?pretty’ -d ‘

{
“query”: { “match”: { “name”: “Jaffffne Doe” } }

}’





批量添加

curl -XPOST ‘localhost:9200/customer/external/_bulk?pretty’ -d ‘
{“index”:{“_id”:”1″}}
{“name”: “John Doe” }
{“index”:{“_id”:”2″}}
{“name”: “Jane Doe” }

批处理 更新 和 删除 删除没有对应的 doc 因为删除了 doucment就没了

curl -XPOST ‘localhost:9200/customer/external/_bulk?pretty’ -d ‘
{“update”:{“_id”:”1″}}
{“doc”: { “name”: “John Doe becomes Jane Doe” } }
{“delete”:{“_id”:”2″}}

如果批处理一个单独动作失败了 会继续执行下一个动作 然后所有的执行完后 会返回每条执行动作的状态


批量搜索接口

curl‘localhost:9200/bank/_search?q=*&pretty’

结果格式

  • took – 搜索用的毫秒
  • timed_out – 搜索超时时间
  • _shards – 搜索了多少个片段 成功搜索多少个 失败了多少个
  • hits – 搜索的返回结果集
  • hits.total – 结果的总数
  • hits.hits – 实际搜索返回的数组
  • _score and max_score – ignore these fields for now

 

另一种搜索方法

curlXPOST‘localhost:9200/bank/_search?pretty’d‘{ “query”: { “match_all”: {} }}’

一旦es搜索返回给你 该链接就断开了 es并不会想mysql之类的 一直维护一个连接



查询匹配所有 但是只查询一个

curlXPOST‘localhost:9200/bank/_search?pretty’d‘{ “query”: { “match_all”: {} }, “size”: 1}’

注意 如果没有指定大小 默认返回10

从11位开始查询10个

curlXPOST‘localhost:9200/bank/_search?pretty’d‘{ “query”: { “match_all”: {} }, “from”: 10, “size”: 10}’

未指定from的话 默认是 0


查询所有 按照 balance 排序

curlXPOST‘localhost:9200/bank/_search?pretty’d‘{ “query”: { “match_all”: {} }, “sort”: { “balance”: { “order”: “desc” } }}’


查询所有数据 但是只获取指定字段

curl -XPOST ‘localhost:9200/bank/_search?pretty’ -d ‘
{
“query”: { “match_all”: {} },
“_source”: [“account_number”, “balance”],
“size”: 1
}’


真正的条件查询来了

查询 account_method = 20

curlXPOST‘localhost:9200/bank/_search?pretty’d‘{ “query”: { “match”: { “account_number”: 20 } }}’


查询地址里包含 mill的

curlXPOST‘localhost:9200/bank/_search?pretty’d‘{ “query”: { “match”: { “address”: “mill” } }}’


布尔值查询 必须2个都满足

curl -XPOST ‘localhost:9200/bank/_search?pretty’ -d ‘
{
“query”: {
“bool”: {
“must”: [
{ “match”: { “address”: “mill” } },
{ “match”: { “address”: “lane” } }
]
}
}
}’


查询2个条件 只要有一个满足就返回

curl -XPOST ‘localhost:9200/bank/_search?pretty’ -d ‘
{
“query”: {
“bool”: {
“should”: [
{ “match”: { “address”: “mill” } },
{ “match”: { “address”: “lane” } }
]
}
}
}’


不包括下面2个搜索项的数据查询

curl -XPOST ‘localhost:9200/bank/_search?pretty’ -d ‘
{
“query”: {
“bool”: {
“must_not”: [
{ “match”: { “address”: “mill” } },
{ “match”: { “address”: “lane” } }
]
}
}
}’

多种状态一起查询

curl -XPOST ‘localhost:9200/bank/_search?pretty’ -d ‘
{
“query”: {
“bool”: {
“must”: [
{ “match”: { “age”: “40” } }
],
“must_not”: [
{ “match”: { “state”: “ID” } }
]
}
}
}’


定义过滤器

curlXPOST‘localhost:9200/bank/_search?pretty’d‘{ “query”: { “filtered”: { “query”: { “match_all”: {} }, “filter”: { “range”: { “balance”: { “gte”: 20000, “lte”: 30000 } } } } }}’



聚合

curlXPOST‘localhost:9200/bank/_search?pretty’d‘{ “size”: 0, “aggs”: { “group_by_state”: { “terms”: { “field”: “state” } } }}’






elasticsearch格式索引:类型:id

curlX<RESTVerb><Node>:<Port>/<Index>/<Type>/<ID>


Tagged on:

8 thoughts on “elasticsearch 安装和使用

Comments are closed.