安裝elasticsearch、kibana:
#docker pull elasticsearch:7.7.0 docker run --detach \ --name elasticsearch \ --publish 19200:9200 --publish 19300:9300 \ --restart always \ --env "node.name=elasticsearch" \ --env "cluster.name=test-elasticsearch" \ --env "bootstrap.memory_lock=true" \ --env "ES_JAVA_OPTS=-Xms512m -Xmx512m" \ --env "discovery.type=single-node" \ --env "script.painless.regex.enabled=true" \ --volume /data/elasticsearch/elasticsearchdata:/usr/share/elasticsearch/data \ --volume /data/elasticsearch/elasticsearchplugins:/usr/share/elasticsearch/plugins \ --volume /data/elasticsearch/elasticsearchconfig/stopwords.txt:/usr/share/elasticsearch/config/stopwords.txt \ --volume /data/elasticsearch/elasticsearchconfig/synonyms.txt:/usr/share/elasticsearch/config/synonyms.txt \ --volume /etc/localtime:/etc/localtime \ elasticsearch:7.7.0 #chmod -R 777 /data/elasticsearch 安裝Elasticsearch時提示權限不夠,更改權限即可(chmod -R 777 els) # --env cluster.initial_master_nodes=elasticsearch \ #7.7.0 不需要加 --env "discovery.type=single-node" \ #7.7.0 需要加上 #docker pull kibana:7.7.0 #連接當前機器的docker里面的es #docker run --detach \ --name kibana \ --publish 15601:5601 \ --link elasticsearch:es \ #--link --env "ELASTICSEARCH_HOSTS=http://es:19200" \ --env "LS_JAVA_OPTS=-Xmx256m -Xms256m" \ --volume /etc/localtime:/etc/localtime \ kibana:7.7.0 #連接另外一台機器的docker里面的es,端口也換了 #docker run --detach ` --name kibana-dev ` --publish 15601:5601 ` --add-host=elasticsearch:192.168.0.119 ` #--add-host --env "ELASTICSEARCH_HOSTS=http://elasticsearch:32607" ` --env "LS_JAVA_OPTS=-Xmx256m -Xms256m" ` kibana:7.7.0
ElasticSearch(四)查詢、分詞器和安裝IK插件
安裝之后,注意需要重啟ES服務期。
curl -XPOST http://localhost:9200/index/_mapping -H 'Content-Type:application/json' -d' { "properties": { "content": { "type": "text", "analyzer": "ik_max_word", "search_analyzer": "ik_smart" } } }'
進入容器里,顯示所有插件的名稱
./bin/elasticsearch-plugin install -h
進入容器,在容器里安裝日語插件:安裝成功之后不需要重啟ES服務器
#./bin/elasticsearch-plugin install analysis-kuromoji
安裝成功之后的目錄結構和IK的相似
# 使用標准分詞器 statndard GET _analyze { "analyzer": "standard", "text": "奧迪a4l" } # 使用IK分詞器 ik_smart GET _analyze { "analyzer": "ik_smart", "text": "奧迪" } # 使用日語分詞器 kuromoji GET _analyze { "analyzer": "kuromoji", "text": "東京都は22日、緩和の行程を3段階で示す「ロードマップ」の詳細を発表した。最初の「ステップ1」で、飲食店の営業時間。" }
1、創建名為 tlz_es 的索引庫:
PUT tlz_es
2、往索引庫添加文檔,created:true表示添加文檔成功:
POST tlz_es/article { "title":"Java是世界上最好的語言", "content":"Java是世界上最好的語言,不接受反駁" }
3、查詢所有文章
GET tlz_es/article/_search
4、修改某一篇文章,復制好_id。此時created:false.如果后面跟一個不存在的id,則為創建操作。
5、條件查詢,*表示模糊查詢
GET tlz_es/article/_search?q=title:*C*
kibana使用:
GET _search { "query": { "match_all": {} } } # 創建索引庫 PUT tlz_es # 往索引庫添加文檔,created:true表示添加文檔成功 POST tlz_es/article { "title":"Java是世界上最好的語言", "content":"Java是世界上最好的語言,不接受反駁" } # 查詢所有文章 GET tlz_es/article/_search # 修改某一篇文章 PUT tlz_es/article/AXIRlNX9I0pEtAhy7gZr { "title":"C#是世界上最好的語言", "content":"C#是世界上最好的語言,不接受反駁" } #條件查詢,*表示模糊查詢 GET tlz_es/article/_search?q=title:*C* # 查看所有索引 GET _cat/indices # 查看所有字段映射 GET lucenespumodel/_mapping/ # 查詢全部 GET lucenespumodel/_search # 查詢全部,只返回五條記錄 GET lucenespumodel/_search { "query": { "match_all": {} }, "size":5 } # 聚合字段 GET lucenespumodel/_search { "query": { "match_all": {} }, "size":5, "aggs" : { "PropertyTextFacet" : { "terms" : { "field" : "PropertyTextFacet" } } } } # 動態列 GET lucenespumodel/_search { "query": { "query_string": { "default_field": "SPUID", "query": "578123" } }, "size":5, "_source": { "includes": ["SPUID","TopicLeiMuMaxSort","TopicLeiMuMaxSort_1223"] } } GET lucenespumodel/_mapping/