本文使用Github中的Elasticsearch-rtf,已经集成了众多的插件,例如必须使用的中文分词等,可以简单的通过配置来启用中文分词。本文主要分为以下几部分:
1、配置和启用中文分词;
2、定义索引的mapping
3、java客户端jest创建和检索索引
4、高亮检索结果
5、集群配置
工具:
由于Elasticsearch完全REST风格,支持json进行交互,简单的curl工具就可以完成很多功能,本文中也有部分操作会直接使用curl。window环境下建议下载一个可执行的curl.exe,找一个目录,然后将目录放到path环境变量中,则curl就可以直接使用了。
配置
定义Mapping
使用json格式的mapping,直接通过添加到test-index索引中。当然,在此之前得先增加一个叫test-index的索引( curl –XPUT http://localhost:9200/test-index,一个简单的命令就可以完成这个事情了。)
{"huangke": {"mappings": {"index": {"properties": {"alttitle": {"index": "analyzed","type": "string"},"contens": {"properties": {"pageno": {"type": "long"},"pagetext": {"index": "analyzed","type": "string"}}},"desc": {"index": "analyzed","type": "string"},"drmi": {"index": "not_analyzed","type": "string"},"isbn": {"index": "not_analyzed","type": "string"},"metadatatype": {"index": "not_analyzed","type": "string"},"metaid": {"index": "not_analyzed","type": "string"},"publisher": {"index": "analyzed","type": "string"},"title": {"index": "analyzed","type": "string"}}}}}}
JEST使用
高亮检索结果
集群配置
cluster.name一样,则表示是一个集群,es默认会根据名字自动发现node节点的机器,并加入到集群中进行管理。通过如下简单的配置,就可以将es的集群搭建好:
master机器:
cluster.name: "logstash_ela"node.name: "elasticsearch_node0"node.master: truenode.data: truenode节点机器:node.master配置为false表示此节点就只会用来存储数据,在任何情况下都不会作为master节点(内置选举啥机制等,配置为true的则在某些情况下还是有可能会作为master节点存在的)。
cluster.name: "logstash_ela"node.name: "elasticsearch_node1"node.master: falsenode.data: true