Elasticsearch JDBC脚本同时索引父子项

时间:2016-02-29 11:18:47

标签: elasticsearch

我正在使用Elasticsearch-JDBC导入器创建和索引从我的数据库索引一些内容,其中包含子父关系。

item是父级,user_item_relation是孩子。

这是映射:

curl -XPUT 'localhost:9200/testindex?pretty=true' -d '{
  "mappings": {
    "item": {
       "dynamic": "strict",
       "properties" : {
            "title" : { "type": "string" },
            "body" : { "type": "string" }
}},
   "user_item_relation": {
        "dynamic": "strict",
           "_parent": {"type": "item" },
           "properties" : {
                 "item_id" : { "type": "integer" },
                 "source_id" : { "type": "integer" }
}}}}'

这是我用来导入类型item(父级)的脚本。 脚本的名称为item_indexer.sh

#!/bin/sh

bin=/usr/share/elasticsearch/elasticsearch-jdbc-2.1.1.2/bin
lib=/usr/share/elasticsearch/elasticsearch-jdbc-2.1.1.2/lib
echo "Indexing..."
echo '{
    "type" : "jdbc",
    "jdbc" : {
        "url" : "jdbc:mydbip/mydbname",
        "user" : "username",
        "password" : "pw",
        "sql" : "select title, body, id as _id from table_item",
        "index" : "testindex",
        "type" : "item"
    }
}' | java \
       -cp "${lib}/*" \
       -Dlog4j.configurationFile=${bin}/log4j2.xml \
       org.xbib.tools.Runner \
       org.xbib.tools.JDBCImporter 

..这是我用来导入类型user_item_relation(孩子们)的脚本。脚本的名称为user_item_relation_indexer.sh

#!/bin/sh

bin=/usr/share/elasticsearch/elasticsearch-jdbc-2.1.1.2/bin
lib=/usr/share/elasticsearch/elasticsearch-jdbc-2.1.1.2/lib
echo "Indexing..."
echo '{
    "type" : "jdbc",
    "jdbc" : {
        "url" : "jdbc:mydbip/mydbname",
        "user" : "username",
        "password" : "pw",
        "sql" : "select source_id, item_id, id as _id from table_user_item_relation",
        "index" : "testindex",
        "type" : "user_item_relation"
    }
}' | java \
       -cp "${lib}/*" \
       -Dlog4j.configurationFile=${bin}/log4j2.xml \
       org.xbib.tools.Runner \
       org.xbib.tools.JDBCImporter 

要索引所有内容,我首先索引并运行索引item_indexer.sh的父(item)的脚本,当它完成时,我运行子代的脚本({ {1}})索引user_item_relation_indexer.sh

如果我首先索引父级,然后是子级,则一切正常。

所以我的问题是:是否可以同时运行这两个脚本,并将索引编入索引?或者首先需要索引所有父文档然后索引子文档?

我无法尝试,因为它现在正在索引,我不想失去它已经编入索引的3h。

0 个答案:

没有答案