博客 2015-03-08

配置 JDBC 数据源

1. 安装 openjdk(本人用的ubuntu)

sudo apt-get install openjdk-7-jre


2.下载安装 elasticsearch

wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.4.4.deb
sudo dpkg -i elasticsearch-1.4.4.deb
/etc/init.d/elasticsearch start


3.安装JDBC 插件

./bin/plugin --install jdbc --url http://xbib.org/repository/org/xbib/elasticsearch/plugin/elasticsearch-river-jdbc/1.4.0.10/elasticsearch-river-jdbc-1.4.0.10.zip

4.安装Mysql JDBC 驱动

curl -o mysql-connector-java-5.1.33.zip -L 'http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.33.zip/from/http://cdn.mysql.com/'
unzip mysql-connector-java-5.1.33.zip
cp mysql-connector-java-5.1.33-bin.jar $ES_HOME/plugins/jdbc/
chmod 644 $ES_HOME/plugins/jdbc/*
/etc/init.d/elasticsearch restart


http://localhost:9200/_nodes?settings=true&pretty=true  配置信息(安装路径、插件...)

更多参数见:https://github.com/jprante/elasticsearch-river-jdbc


5.测试mysql (用户root 密码passwd 库jdbctest 表名posts)

curl -XPUT 'localhost:9200/_river/my_jdbc_river/_meta' -d '{
    "type" : "jdbc",
    "jdbc" : {
        "url" : "jdbc:mysql://localhost:3306/jdbctest",
        "user" : "root",
        "password" : "passwd",
        "sql" : "select * from posts"
    }
}'
curl 'localhost:9200/jdbc/_search'

IK 中文分词插件

1. elasticsearch 默认的分词功能:(简单的把每个汉字分开)

root@blog-mreald-com:/usr/share/elasticsearch# curl -XGET 'http://localhost:9200/posts/_analyze?analyzer=standard&pretty=true&text=Mreald致力于全栈工程师'

结果如下:

{
  "tokens" : [ {
    "token" : "mreald",
    "start_offset" : 1,
    "end_offset" : 7,
    "type" : "<ALPHANUM>",
    "position" : 1
  }, {
    "token" : "致",
    "start_offset" : 8,
    "end_offset" : 9,
    "type" : "<IDEOGRAPHIC>",
    "position" : 2
  }, {
    "token" : "力",
    "start_offset" : 9,
    "end_offset" : 10,
    "type" : "<IDEOGRAPHIC>",
    "position" : 3
  }, {
    "token" : "于",
    "start_offset" : 10,
    "end_offset" : 11,
    "type" : "<IDEOGRAPHIC>",
    "position" : 4
  }, {
  ...............................


2.安装IK插件:(1.2.9没有jar包,要自己打)


要与ES版本配套:

Version
-—————
master | 1.4.0 → master
1.2.9 | 1.4.0
1.2.8 | 1.3.2
1.2.7 | 1.2.1


下载elasticsearch-analysis-ik 源代码 https://github.com/medcl/elasticsearch-analysis-ik

cd elasticsearch-analysis-ik

mvn package

cd target/releases/


就会看到    elasticsearch-analysis-ik-1.2.9.zip 

把elasticsearch-analysis-ik-1.2.9.zip 解压到 ES/plugins/analysis-ik/ 

root@blog-mreald-com:/usr/share/elasticsearch/plugins/analysis-ik# ls
commons-codec-1.6.jar      elasticsearch-analysis-ik-1.2.9.jar  httpclient-4.3.5.jar
commons-logging-1.1.3.jar  elasticsearch-analysis-ik-1.2.9.zip  httpcore-4.3.2.jar

将ik的配置和字典都复制到ES_HOME/config下

sudo cp -R ik /etc/elasticsearch

elasticsearch.yml 增加下面一行,然后重启下ES

index.analysis.analyzer.ik.type : 'ik'


3.IK 安装之后:

root@blog-mreald-com:/usr/share/elasticsearch# curl -XGET 'http://localhost:9200/posts/_analyze?analyzer=ik&pretty=true&text=Mreald致力于全栈工程师'


查看结果:

{
  "tokens" : [ {
    "token" : "mreald",
    "start_offset" : 1,
    "end_offset" : 7,
    "type" : "ENGLISH",
    "position" : 1
  }, {
    "token" : "致力于",
    "start_offset" : 8,
    "end_offset" : 11,
    "type" : "CN_WORD",
    "position" : 2
  }, {
    "token" : "致力",
    "start_offset" : 8,
    "end_offset" : 10,
    "type" : "CN_WORD",
    "position" : 3
  }, {
    "token" : "致",
    "start_offset" : 8,
    "end_offset" : 9,
    "type" : "CN_WORD",
    "position" : 4
  }, {
  ...................


注意事件:

mvn 需要额外安装,centos 方法参考

ubuntu 使用 sudo aptitude install maven

Errors:

 1.

[ERROR] Unable to locate the Javac Compiler in:
  /usr/lib/java/jre1.7.0_55/../lib/tools.jar
Please ensure you are using JDK 1.4 or above and
not a JRE (the com.sun.tools.javac.Main class is required).
In most cases you can change the location of your Java
installation by setting the JAVA_HOME environment variable.

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project elasticsearch-analysis-ik: Compilation failure
[ERROR] Unable to locate the Javac Compiler in:
[ERROR] /usr/lib/java/jre1.7.0_55/../lib/tools.jar

原因:ubuntu 自带的JAVA openjdk包不全,没有tools.jar包。解决方法(find 下你刚才安装的openjdk在哪儿):

sudo apt-get install openjdk-7-jre; export 
export  JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/


2.错误:

{
  "error" : "NoShardAvailableActionException[[_na][_na] No shard available for
  [org.elasticsearch.action.admin.indices.analyze.AnalyzeRequest@7c9c15]]",
  "status" : 503
}

cp 过去的是: target/releases/elasticsearch-analysis-ik-1.2.9.zip 

    不是: target/elasticsearch-analysis-ik-1.2.9.jar