jerkzhang
Elasticsearch是一款开源免费的搜索引擎,你值得拥有。
新版的elasticsearch(v5.1.2)最少需要java8
sudo add-apt-repository ppa:webupd8team/java -y sudo apt-get update sudo apt-get install oracle-java8-installer sudo apt-get install oracle-java8-set-default
安装好后,检查一下java的版本
java -version
去官网下载下来解压即可,这家伙是绿色版的。
./bin/elasticsearch
如果加 -d 就是后台运行;默认是9200端口。
#coding=utf-8
import json
import requests
url = 'http://localhost:9200/_count?pretty'
data = {'query': {'match_all': {}}}
r = requests.post(url, data=json.dumps(data)) #要用json.dumps()!!!
print r.text#coding=utf-8
import requests
import json
url = 'http://localhost:9200/zyw/article/1' # zyw是index名,article是类型type
data = {'content': "fuck it" } # uri中的变量自动能导入到_id中
r = requests.put(url, data=json.dumps(data)) # 要用json.dumps()!!!
print r.text#coding=utf-8 import requests import json url = 'http://localhost:9200/zyw/article/2?pretty' r = requests.get(url) # 要用json.dumps()!!! print r.text
#coding=utf-8 import requests import json # 手动删除索引 url = 'http://10.13.71.182:9200/zyw' r = requests.delete(url) print r.text
映射与分析必须是在整个文档索引没有建立前设置好。注意自定义的那个分析器必须用custom类型。
#coding=utf-8
import requests
import json
# 设置分析器
# 必须在索引被创建前来设置映射与分析
url = 'http://10.13.71.182:9200/zyw?pretty'
data = {
"settings": {
"analysis": {
"filter": {
"my_stopwords": {
"type": "stop",
"stopwords": [ "the", "a" ]
}},
"analyzer": {
"my_analyzer": {
"type": "custom",
"char_filter": [ "html_strip" ],
"tokenizer": "standard",
"filter": [ "lowercase", "my_stopwords" ]
}}
}}}
r = requests.put(url, data=json.dumps(data)) #要用json.dumps()!!!
print r.text
创建好的分析器my_analyzer无法自己使用……必须提前绑定具体的类型(type,但是我看来更像绑定具体的字段)
#coding=utf-8
import requests
import json
url = 'http://10.13.71.182:9200/zyw/_mapping/article'
data = {
"properties": {
"content": {
"type": "text",
"analyzer": "my_analyzer"
}
}
}
r = requests.put(url, data=json.dumps(data) )
print r.text#coding=utf-8
import json
import requests
url = 'http://localhost:9200/zyw/article/_search?size=5&pretty'
data = {'query': {'match': { "content":"XXXX" }}}
r = requests.post(url, data=json.dumps(data)) #要用json.dumps()!!!
print r.text
config参数设置在es的config文件夹下,整个config文件夹就是参数源。
1. 在 /etc/sysctl.conf 设置或添加 vm.max_map_count=262144 然后 sysctl -p
2. /etc/security/limits.conf 中添加如下:
* soft nofile 65536 * hard nofile 131072 * soft nproc 2048 * hard nproc 4096
然后就可以以指定的config来启动了
./bin/elasticsearch -Epath.conf=/data/elasticsearch-5.2.2/config/
es是绿色版的;假如es的文件夹的权限有问题,这就要把es文件夹以及其子文件夹的权限变成777
找到那个文件夹,然后输入 chmod 777 * -R
很久以前的笔记,好多都记不清了~