在Elasticsearch中保留已公布的凭据(使用jdbc-river)

时间:2014-06-04 16:12:22

标签: ruby-on-rails elasticsearch elasticsearch-jdbc-river

我使用jdbc-river从PostgreSQL数据库填充我的Elasticsearch实例。河流的记录是使用以下ruby的代码创建的(因为我从Rails应用程序查询ES):


    require 'elasticsearch'

    client = Elasticsearch::Client.new

    client.create :index => "_river", :type => "ldi", :id => "_meta", :body =>
      {
        :type => :jdbc,
        :jdbc => {
          :driver => "org.postgresql.Driver",
          :url =>  "jdbc:postgresql://localhost:5432/" + ENV['DB_NAME'],
          :user => ENV['DB_USER'],
          :password => ENV['DB_PASS'],
          :index => ENV['DB_NAME'],
          :type => "ldi",
          :sql => "select id as _id, * from ldis"
        }
      }

我使用envirnoment变量来获取数据库凭据,以避免显示实际的变量。问题是,一旦将记录添加到ES,就会公布实际凭证。因此,您可以查询ES并获得以下内容:


    "hits": {
          "total": 6,
          "max_score": 1,
          "hits": [
             {
                "_index": "_river",
                "_type": "ldi",
                "_id": "_meta",
                "_score": 1,
                "_source": {
                   "type": "jdbc",
                   "jdbc": {
                      "driver": "org.postgresql.Driver",
                      "url": "jdbc:postgresql://localhost:5432/any_dbname",
                      "user": "any_dbuser",
                      "password": "any_dbpass",
                      "index": "any_index",
                      "type": "ldi",
                      "sql": "select id as _id, * from ldis"
                   }
                }
             }
     ....

有没有办法让他们保密?

0 个答案:

没有答案