elasticsearch 文档
elasticsearch 文档
安装篇
- elasticsearch的安装非常简单,下载后,直接 ./bin/elasticsearch 启动就可以了。(在linux有些坑,比如linux版本低会报警,root不能启动,需要新建用户。新建用户要给操作elasticsearch的权限等等..)
注意如果使用插件的话,要下载5.0版本,配kibana的5.0版本。否则各种不兼容。下载地址https://www.elastic.co/start
-
kibana下载解压后,直接./kibana/bin/kibana启动,启动后 localhost:5601即可访问。
-
外网访问, 与bin同级的config/elasticsearch.yml和config/kibana.yml是配置文件,里面注释非常详细,配置下链接地址。
使用篇
http://203.86.47.84:5601 配置好的kibana工具,点开链接,选择左侧的Dev Tools, 在这里可以对esearch进行一切操作。
我已经在course-center-2.0分支上下载了官方php-elasticsearch api,位置在vendor/elasticsearch, 自己写的操作ESearch的接口类在larval/app/Library/ESearch.php。 线下环境 env配置 , ES_HOST=http://203.86.47.84:9200
类使用
比如在Controller里,先use App\Library\ESearch;
然后直接
$data = array('id'=>23, 'name'=>'你好测试', 'work'=>'asfdkld');
$a = (new ESearch('test'))->insert($data);
即可将数据导入ESearch里面。
然后去kibana的dev Tools里面,点击绿色三角➤,即可在右侧查看到刚刚插入的数据。
简单分析下数据。
{
"_index": "xnw_db", // 可理解为数据库的名字
"_type": "test", // 可理解为表
"_id": "23", // 唯一建,可用于删除数据,esearch中,id相同,重新插入值会覆盖掉原来的值。id相同时会更新数据
"_score": 1, 权重配置,值大的搜索时排位会被靠前
"_source": { // 我们插入的数据
"id": 23,
"name": "你好测试",
"work": "asfdkld"
}
}
搜索
官方文档
https://www.elastic.co/guide/en/elasticsearch/reference/current/search.html
kibana里面默认搜索的是esearch里面的全部值,我封装的类只搜索xnw_db库里面的内容。
搜索库中全部内容:
(new ESearch('test'))->search()
kibana中的写法,指定库搜索
GET /xnw_db/_search?
搜索name为 “我” 的值,kibana中,
GET /xnw_db/_search? {
"query" : {
"term" : { "name" : "我" }
}
},
代码中。
$a = (new ESearch('test'))->search(array("query"=>array("term"=>array("name"=>"我"))));
1,可以看出,直接将kibana中的json转换为数组放入代码中,即可搜索到相应值,为简便,以下将只写kibana中的写法
2,注意,term本是搜索某个字段确切值得方法,但由于中文被分词了, 搜确切值用term反而搜不到, 正式环境中尽量少用term
- esearch默认是0,10页,
GET xnw_db/_search {
"from" : 0, "size" : 1,
"query" : {}
}
其余具体用法参考官方文档。