elasticsearch 文档

Posted 管小木

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了elasticsearch 文档相关的知识,希望对你有一定的参考价值。

elasticsearch 文档

安装篇

  • elasticsearch的安装非常简单,下载后,直接 ./bin/elasticsearch 启动就可以了。(在linux有些坑,比如linux版本低会报警,root不能启动,需要新建用户。新建用户要给操作elasticsearch的权限等等..)

官网 https://www.elastic.co

注意如果使用插件的话,要下载5.0版本,配kibana的5.0版本。否则各种不兼容。下载地址https://www.elastic.co/start

  • 启动后用http://localhost:9200/访问。

  • 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

  1. esearch默认是0,10页,

GET xnw_db/_search {

"from" : 0, "size" : 1,
"query" : {}

}

其余具体用法参考官方文档。

以上是关于elasticsearch 文档的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch:运用 Elasticsearch 查找类似文档:more_like_this

Elasticsearch:运用 Elasticsearch 查找类似文档:more_like_this

ElasticSearch学习问题记录——Invalid shift value in prefixCoded bytes (is encoded value really an INT?)(代码片段

Elasticsearch:如何在 Elasticsearch 中正确使用同义词功能

Elasticsearch:如何在 Elasticsearch 中正确使用同义词功能

ElasticSearch 学习笔记一 简介