jerkzhang,stay hungry, stay foolish
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
很久以前的笔记,好多都记不清了~