elasticsearch和kibana的一些问题汇总
elasticsearch和kibana的一些问题汇总
1、先放一个docker-compose.yml
version: '3'
services:
elasticsearch:
image: elasticsearch:8.8.2
container_name: elasticsearch
environment:
- "discovery.type=single-node"
- "xpack.security.enabled=false"
- "ES_JAVA_OPTS=-Xms4g -Xmx4g"
ports:
- "9200:9200"
- "9300:9300"
volumes:
- /es/data:/usr/share/elasticsearch/data
kibana:
image: kibana:8.8.2
container_name: kibana
ports:
- "5601:5601"
environment:
ELASTICSEARCH_URL: http://elasticsearch:9200
depends_on:
- elasticsearch
2、kibana中文汉化
进入kibana容器,进入到/usr/share/kibana/config,编辑kibana.yml,在最后一行新增
i18n.locale: "zh-CN"
如果没有安装vi和vim,可以先用docker cp拷贝出来,修改后再覆盖回去
//先cp出来
docker cp kibana:/usr/share/kibana/config/kibana.yml kibana.yml
//修改省略
//再覆盖回去
docker cp kibana.yml kibana:/usr/share/kibana/config/kibana.yml
//然后重启kibana容器
3、如果使用Elasticsearch-head的话,要处理跨域问题
这里我们需要修改elasticsearch的配置文件,同样的,我们docker cp出来修改
//先cp出来配置文件
docker cp elasticsearch:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch.yml
//然后在宿主机进行修改
vi elasticsearch.yml
//在文件最后增加两行配置
http.cors.enabled: true
http.cors.allow-origin: "*"
//保存后,再cp回去
docker cp elasticsearch.yml elasticsearch:/usr/share/elasticsearch/config/elasticsearch.yml
//然后重启elasticsearch容器
4、安装ik分词器插件
如果涉及到中文的分词,需要安装ik分词器,进入的elasticsearch容器,执行命令
bin/elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/8.4.1
如果失败的话,版本号改为和elasticsearch一样的版本号。安装后需要重启elasticsearch
5、自定义的ik分词器
自动的分词,有时候会不符合我们的需求,这里就需要了配置自定义分词,先在外面建立一个自定义的分词的文件,假设名称叫cinema.dic ,这里注意,后缀必须为dic。文件很简单,把自定义的词,一行一个填进去就行了。然后执行docker cp命令,把文件传入容器
docker cp cinema.dic elasticsearch:/usr/share/elasticsearch/config/analysis-ik/cinema.dic
然后,我们还需要启用自定义的分词文件,这里我们先把这个文件拷贝出来
//先cp出来配置文件
docker cp elasticsearch:/usr/share/elasticsearch/config/analysis-ik/IKAnalyzer.cfg.xml IKAnalyzer.cfg.xml
//然后再宿主机修改
vi IKAnalyzer.cfg.xml
//配置这一行就行了
<entry key="ext_dict">cinema.dic</entry>
//保存后,再cp回去
docker cp IKAnalyzer.cfg.xml elasticsearch:/usr/share/elasticsearch/config/analysis-ik/IKAnalyzer.cfg.xml
//然后重启elasticsearch容器
因为每次修改这个文件,都需要重启ES,所以最好先收集一些再一并处理,或者在ES的低谷时期重启
6、安装拼音插件,支持到拼音的检索
bin/elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-pinyin/8.8.2
PS:下面再附注一些常用的查询语句,这些需要在kibana中执行
//检测分词的情况
GET _analyze
{
"analyzer": "ik_max_word",
"text":"E.T时代影城"
}
//获取doc详情
GET /cinemas/_doc/75776
//搜索关键词
POST /cinemas/_search
{
"query": {
"bool": {
"should": [{
"match": {
"city_cinema_name": {
"query": "乐多港",
"boost": 2
}
}
}, {
"match": {
"custom_search_name": {
"query": "",
"boost": 3
}
}
}],
"minimum_should_match": 1
}
},
"highlight": {
"pre_tags": ["<strong>"],
"post_tags": ["</strong>"],
"fields": {
"city_cinema_name": {},
"city_name":{}
}
}
}
//增加索引字段
PUT /auto_quote_rule/_mapping
{
"properties": {
"issue_price": {
"type": "keyword"
}
}
}
PUT /public_rule/_mapping
{
"properties": {
"tags": {
"type": "keyword"
},
"tags_not": {
"type": "keyword"
}
}
}
本文链接:
/archives/1721207268057
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
雕刻时光!
喜欢就支持一下吧