.net core elk(一)docker 单机部署
首先查看 版本 挂载的 插件版本 和 es版本要一致
下面这俩 都是需要下载的
elasticsearch-sql 需要将下载文件拷贝到服务器


ES 7.17.1 essql 7.17.1 ik 7.17.1 要不然挂载不上去

部署elasticsearch 挂载 插件 启动
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -v /home/admin1/yyx/es/sql:/usr/share/elasticsearch/plugins/sql -v /home/admin1/yyx/es/ik:/usr/share/elasticsearch/plugins/ik -e ES_JAVA_OPTS="-Xms100m -Xmx200m" elasticsearch:7.17.1
如果访问不了 进入容器内修改配置文件
用管理员进入容器内
docker exec -it --user=root ec8fd0d028e6 /bin/sh
进入容器内修改文件 需要下载vim
Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
退出容器 exit
vim下载不了用vi
用vi 修改配置文件 vi操作方法



部署kibana 要与 ES版本一致

docker run -p 5601:5601 -d -e ELASTICSEARCH_URL=http://192.168.0.105:9200 -e ELASTICSEARCH_HOSTS=http://192.168.0.105:9200 kibana:7.17.1
kibana有点慢 会出现 Kibana server is not ready yet 情况等一会 再试试

谷歌浏览器的插件 ElasticSearch Head


自定义分词
新建一个 dic文件 将文件名称 复制到 IKAnalyzer.cfg.xml 文件中去



postman 使用sql 调用查询
{
"query":"select * from people"
}

POST /_xpack/sql?format=txt
{
"query":"select address from clayindex t "
}
elk sql
Elasticsearch SQL语法 与 sql有所不同 如果 索引是text 即分词那么就不能用sql语法 应该用match()
{
"query":"select address,name from clayindex where match( address ,'国') and name ='曹操' limit 1 "
}
SELECT select_expr [, ...]
[ FROM table_name ]
[ WHERE condition ]
[ GROUP BY grouping_element [, ...] ]
[ HAVING condition]
[ ORDER BY expression [ ASC | DESC ] [, ...] ]
[ LIMIT [ count ] ]
[ PIVOT ( aggregation_expr FOR column IN ( value [ [ AS ] alias ] [, ...] ) ) ]