elasticsearch 体验,

elastic search 是高可用、开源、富文本的搜索和分析引擎。支持大数据量快速近实时的存储、搜索和分析。通常用作支持复杂查询的底层引擎/技术,为具有复杂搜索特性和需求的应用程序提供动力。

官网网站中的 Elasticsearch documentation解说的十分详细。但都是英文的,没办法外国人写的,先学习借鉴吧。

--index mapping--
 curl -XPUT http://zhaixl1:9200/shakespeare -d ' 
 { 
  "mappings" : { 
  "_default_" : { 
    "properties" : { 
    "speaker" : {"type": "string", "index" : "not_analyzed" }, 
    "play_name" : {"type": "string"}, 
    "line_id" : { "type" : "integer" ,"index" : "not_analyzed"}, 
    "speech_number" : { "type" : "integer" ,"index" : "not_analyzed"},
    "date_time":{"type": "string", "index" : "not_analyzed"}
    } 
  } 
  } 
 } 
';
 curl -XPUT http://zhaixl1:9200/zhaixl -d ' 
 { 
  "mappings" : { 
  "date_test" : { 
    "properties" : { 
    "speaker" : {"type": "string", "index" : "not_analyzed" }, 
    "play_name" : {"type": "string"}, 
    "line_id" : { "type" : "integer" ,"index" : "not_analyzed"}, 
    "speech_number" : { "type" : "integer" ,"index" : "not_analyzed"},
    "date_time":{"type": "string"}
    } 
  } 
  } 
 } 
';
--create dataId:1 --
curl -XPUT http://zhaixl1:9200/shakespeare/-default-/1?op_type=create -d ' 
{
"speaker":"me",
"play_name":"you and me!",
"line_id":11,
"speech_number":12,
"date_time":"2016-07-11T12:58:17.136+0800"
}
';
curl -XPOST http://zhaixl1:9200/shakespeare/-default-/3 -d ' 
{
"speaker":"me",
"play_name":"you and hhh",
"line_id":11,
"speech_number":12,
"date_time":"2016-07-12T12:58:17.136+0800",
"www":"www"
}
';


--get dataId:1 --
curl -XGET http://zhaixl1:9200/shakespeare/-default-/1 ;


--update dataId:1 --
curl -XPUT http://zhaixl1:9200/shakespeare/-default-/1 -d ' 
{
"speaker":"you",
"play_name":"you",
"line_id":11,
"speech_number":12
}
';


--delete date:2--
curl -XDELETE http://zhaixl1:9200/shakespeare/-default-/2 ;




--search date key --
curl -XGET 'http://zhaixl1:9200/zhaixl/-default-/_search' -d '{
    "query" : {
    "term" : { "speaker" : "me" } //查所有 "match_all": {}
    },
    "sort" : [{ "speech_number" : {"order" : "asc"}},{ "play_name" : "desc" } ],
    "from":0,
    "size":100
}
';


curl -XGET 'http://zhaixl1:9200/zhaixl/-default-/_search' -d '{
    "filter": {"and":{"filters":[{"term":{"speaker":"you"}},{"term":{"speech_number":"12"}}]}},
    "sort" : [{ "speech_number" : {"order" : "asc"}},{ "play_name" : "desc" } ],
    "from":0,
    "size":100
}

';

这里有几个使用场景,Elasticsearch可用于:

1 在线网站搜索的自动补全。使用Elasticsearch来存储您的整个产品目录和库存和为他们提供搜索和自动补全的功能。


2 收集日志和交易数据,分析和挖掘这些数据,寻找趋势,统计,总结,或异常。在这种情况下,可以使用LogStash(的Elasticsearch / LogStash / Kibana技术栈的一部分)的收集、汇总,并解析你的数据,然后 Logstash把这些数据送到Elasticsearch。一旦数据在Elasticsearch,你可以搜索和聚合来挖掘你感兴趣的任何信息。


2 价格变动提醒(电商网站的降价通知),允许顾客指定一条规则,比如“我有兴趣购买一个特定的电子产品,如果在下个月任何供应商的价格低于X美元,我都会得到通知”。在这种情况下,一旦发现变动,你可以把供应商的价格,把他们推到Elasticsearch和使用反向搜索(过滤器Percolator)的能力来匹配客户查询价格走势最终将警报发送到客户。


3 数据分析/商业智能的需求,并希望快速调查,分析,可视化,并问大量数据的问题(想想数百万或数十亿的记录)。在这种情况下,你可以使用Elasticsearch来存储你的数据,然后用Kibana(Elasticsearch / LogStash / Kibana技术栈的一部分)建立自定义的可视化对你十分重要的数据显示仪表板。此外,您可以使用Elasticsearch的聚合功能来执行复杂的商业智能与数据查询。

4 elastic search 有支持hadoop版的,很好的支持了批量搜索查询,可以将大批量数据在按复杂的搜索条件近实时的过滤出来。


猜你喜欢

转载自blog.csdn.net/long13631/article/details/79771602