elasticsearch搜索引擎相关资料(更新中)

最近需要用到elasticsearch搜索引擎,所以搜集了很多相关资料,先放在这里(未详细整理)

一、步骤总结:(linux环境下)

1. 安装

(1)下载elasticsearch安装包:http://www.elasticsearch.org/download/
(2) tar xzvf elasticsearch-6.2.2.tar.gz 放在linux自建目录下后,解压安装包
(3)修改配置文件,./config/elasticsearch.yml配置文件中

//新增:
//安装完成但是发现启动不了时,修改这两个参数(参考文档 https://www.jianshu.com/p/89f8099a6d09)
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

//修改:
//这里之前是被注释的两句,去掉注释后elasticsearch才能支持curl访问
//注意network.host: 后面需要加空格
network.host: 0.0.0.0
http.port: 9200            

(4)启动elasticsearch ./bin/elasticsearch 如果加上 -d参数则可以启动守护进程 (./bin/elasticsearch -d

2. ik插件安装(待更新)
3. elasticsearch基本操作

elasticsearch使用了restful api,GET请求表示查询 POST请求表示新建
例子:存储一个员工目录
在Elasticsearch中,文档归属于一种类型(type),而这些类型存在于索引(index)中。

//(1)查询当前有多少节点
curl -H "Content-Type: application/json" -XGET 'http://localhost:9200/_count?pretty' -d '
{
    "query": {
        "match_all": {}
    }
}'

创建员工目录需要进行的操作:
 a. 为每个员工的文档(document)建立索引,每个文档包含了相应员工的所有信息。
 b. 每个文档的类型为employee。
 c. employee类型归属于索引megacorp。
 d. megacorp索引存储在Elasticsearch集群中。
这些步骤只需要下面这一个post请求即可完成。

//(2)提交一个数据, post内容为json数据
//员工1
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/megacorp/employee/1' -d '
{
    "first_name" : "John",
    "last_name" :  "Smith",
    "age" :        25,
    "about" :      "I love to go rock climbing",
    "interests": [ "sports", "music" ]
}'
//员工2
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/megacorp/employee/2' -d '
{
    "first_name" :  "Jane",
    "last_name" :   "Smith",
    "age" :         32,
    "about" :       "I like to collect rock albums",
    "interests":  [ "music" ]
}'
//员工3
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/megacorp/employee/3' -d '
{
    "first_name" :  "Douglas",
    "last_name" :   "Fir",
    "age" :         35,
    "about":        "I like to build cabinets",
    "interests":  [ "forestry" ]
}'

//(3)查询内容,查询员工id为1的信息 'megacorp/employee/1'
curl -H "Content-Type: application/json" -XGET 'http://localhost:9200/megacorp/employee/1'

//(4)'_search' 搜索功能, 搜索内容中"about"字段包含"rock"的记录
curl -H "Content-Type: application/json" -XGET 'http://localhost:9200/megacorp/employee/_search' -d '
{
    "query" : {
        "match" : {
            "about" : "rock"
            }
    }
}'

以上是基本的操作,还有更多的搜索操作例如过滤、聚合等,可以参考下面的elasticsearch权威指南。

4. Python代码导入数据(待学习)


二、 参考文档

1. elasticsearch权威指南中文版

超级棒的一个文档,看过之后基本就会用elasticsearch了,入门必看!
https://es.xiaoleilu.com/010_Intro/00_README.html

2. elasticsearch安装过程中遇到问题的解决

(1)这里我遇到了./bin/elasticsearch无法启动的问题,需要修改两个配置参数,下面的文档中有说明:
https://www.jianshu.com/p/89f8099a6d09
(2)curl请求的时候遇到 {"error":"Content-Type header [application/x-www-form-urlencoded] is not supported 的错误,解决方法如下文档:
http://blog.csdn.net/dtiove/article/details/78870607

3. 分词插件ik详细安装步骤

https://www.cnblogs.com/zlslch/p/6440373.html

4. 终极干货文档

http://www.cnblogs.com/xing901022/p/4704319.html

你可能感兴趣的:(elasticsearch搜索引擎相关资料(更新中))