设为首页 收藏本站
查看: 1954|回复: 0

[经验分享] elasticsearch集群&&IK分词器&&同义词

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-7-13 08:49:12 | 显示全部楼层 |阅读模式
                      wget https://download.elastic.co/elas ... search-2.3.3.tar.gz


集群安装:
三个节点:master,slave1,slvae2


vi elasticsearch.yml

cluster.name: my-application
node.name: node-3(节点独有的名称,注意唯一性)
network.host: 192.168.137.117
http.port: 9200
discovery.zen.ping.unicast.hosts: ["master","slave1", "slave2"]




安装插件
/home/qun/soft/elasticsearch-2.3.3/bin/plugin install analysis-icu
/home/qun/soft/elasticsearch-2.3.3/bin/plugin install mobz/elasticsearch-head
marvel:
/home/qun/soft/elasticsearch-2.3.3/bin/plugin install license
/home/qun/soft/elasticsearch-2.3.3/bin/plugin install marvel-agent


在各个节点上执行:
elasticsearch -d


杀死节点
kill -9 `ps -ef|grep elasticsearch|awk '{print $2}'`

启动
/home/qun/soft/elasticsearch-2.3.3/bin/elasticsearch -d


访问集群:
http://master:9200/_plugin/head/

一个节点(node)就是一个Elasticsearch实例,而一个集群(cluster)由一个或多个节点组成,它们具有相同的cluster.name,
它们协同工作,分享数据和负载。当加入新的节点或者删除一个节点时,集群就会感知到并平衡数据。


做为用户,我们能够与集群中的任何节点通信,包括主节点。每一个节点都知道文档存在于哪个节点上,它们可以转发请求到相应的节点上。
我们访问的节点负责收集各节点返回的数据,最后一起返回给客户端。这一切都由Elasticsearch处理。

获取集群状态
http://master:9200/_cluster/health/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"cluster_name": "my-application",
"status": "green",
"timed_out": false,
"number_of_nodes": 3,
"number_of_data_nodes": 3,
"active_primary_shards": 22,
"active_shards": 44,
"relocating_shards": 0,
"initializing_shards": 0,
"unassigned_shards": 0,
"delayed_unassigned_shards": 0,
"number_of_pending_tasks": 0,
"number_of_in_flight_fetch": 0,
"task_max_waiting_in_queue_millis": 0,
"active_shards_percent_as_number": 100
}






设置添加分片
PUT /blogs/_settings
{
   "number_of_replicas" : 2
}



删除索引
curl -XDELETE 'http://master:9200/.marvel-es-1-2016.05.29'
curl -XDELETE 'http://master:9200/.marvel-es-data-1'





安装IK分词器(https://github.com/medcl/elasticsearch-analysis-ik)
wget https://github.com/medcl/elastic ... /archive/master.zip

mvn package
mkdir -p /home/qun/soft/elasticsearch-2.3.4/plugins/ik
cp  /home/qun/soft/elasticsearch-2.3.3/elasticsearch-analysis-ik-master/target/releases/elasticsearch-analysis-ik-1.9.3.zip /home/qun/soft/elasticsearch-2.3.3/plugins/ik
unzip elasticsearch-analysis-ik-1.9.3.zip

测试分词
/twitter/_analyze?analyzer=standard&pretty=true&text=我是中国人
/twitter/_analyze?analyzer=ik&pretty=true&text=我是中国人


添加用户自定义词典:
elasticsearch-2.3.3/plugins/ik/config/IKAnalyzer.cfg.xml
栗子:添加sougou.dic,分号分隔,相对路径,重启es集群
<entry key="ext_dict">custom/mydict.dic;custom/single_word_low_freq.dic;custom/sougou.dic</entry>

1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!--用户可以在这里配置自己的扩展字典 -->
<entry key="ext_dict">custom/mydict.dic;custom/single_word_low_freq.dic;custom/sougou.dic</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords">custom/ext_stopword.dic</entry>
<!--用户可以在这里配置远程扩展字典 -->
<!-- <entry key="remote_ext_dict">words_location</entry> -->
<!--用户可以在这里配置远程扩展停止词字典-->
<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>







配置同义词
修改:elasticsearch-2.3.3/config/elasticsearch.yml,在末尾加上如下内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
index:
  analysis:
    analyzer:
      ik_syno:
          type: custom
          tokenizer: ik_max_word
          filter: [my_synonym_filter]
      ik_syno_smart:
          type: custom
          tokenizer: ik_smart
          filter: [my_synonym_filter]
    filter:
      my_synonym_filter:
          type: synonym
          synonyms_path: analysis/synonym.txt





添加词典:
mkdir -p elasticsearch-2.3.3/config/analysis
vi elasticsearch-2.3.3/config/analysis/synonym.txt
ipod, i-pod, i pod
foozball , foosball
universe , cosmos
西红柿, 番茄
马铃薯, 土豆


测试同义词:
GET   /iktest/_analyze?analyzer=ik_syno_smart&pretty=true&text=马铃薯西红柿
结果:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{
"tokens": [
{
"token": "马铃薯",
"start_offset": 0,
"end_offset": 3,
"type": "CN_WORD",
"position": 0
}
,
{
"token": "土豆",
"start_offset": 0,
"end_offset": 3,
"type": "SYNONYM",
"position": 0
}
,
{
"token": "西红柿",
"start_offset": 3,
"end_offset": 6,
"type": "CN_WORD",
"position": 1
}
,
{
"token": "番茄",
"start_offset": 3,
"end_offset": 6,
"type": "SYNONYM",
"position": 1
}
]
}




                   


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-243331-1-1.html 上篇帖子: LogBack实战(Maven) 下篇帖子: Logstach配置文件详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表