# Document\_id

**URL:** <https://discuss.elastic.co/t/document-id/283269>\
**Category:** Вопросы на русском языке\
**Created:** [September 3, 2021, 10:26am UTC](https://discuss.elastic.co/t/document-id/283269 "2021-09-03T10:26:26Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![cva](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/cva/32/85514_2.png) [@cva](https://discuss.elastic.co/u/cva)\
**Post date:** [September 3, 2021, 10:26am UTC](https://discuss.elastic.co/t/document-id/283269/1 "2021-09-03T10:26:26Z")

</div>

Добрый день!  
Имеется индекс test, в нем несколько тегов: tags1, tags2, tags3.  
Данные я получаю из jdbc запроса к БД.  
В output я меняю \_id elasticsearch =\> на document\_id и отправляю это все в **один индекс test**. В результате в elasticsearch получаю рандомное количество документов по каждому tags отличное от того, что получаю в запросе к БД.

Если я делаю output меняя \_id elasticsearch =\> на document\_id, но отправляю это все в **разные индексы test1, test2, test3** - то в результате количество документов по каждому тегу совпадает с запросами к БД.

Есть ли возможность сделать output в один индекс test, при этом изменив \_id elasticsearch =\> на document\_id?

```auto
> jdbc {
    jdbc_driver_library => "/usr/share/logstash/sqljdbc_7.2/mssql-jdbc-7.2.2.jre8.jar"
    jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
    jdbc_connection_string => "jdbc:sqlserver://1.2.3.4:1234;databaseName=My_DB"
    jdbc_user => "logstash"
    jdbc_password => " **********"
    schedule => "0 3 * * *"
    statement_filepath => "/opt/logstash/tags1.sql"
    tracking_column => "my_id"
    tracking_column_type => "timestamp"
    last_run_metadata_path => "/opt/logstash/tags1"
    use_column_value => true
    tags => ["tags1"]
  }
> jdbc {
    jdbc_driver_library => "/usr/share/logstash/sqljdbc_7.2/mssql-jdbc-7.2.2.jre8.jar"
    jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
    jdbc_connection_string => "jdbc:sqlserver://1.2.3.4:1234;databaseName=My_DB"
    jdbc_user => "logstash"
    jdbc_password => " **********"
    schedule => "2 3 * * *"
    statement_filepath => "/opt/logstash/tags2.sql"
    tracking_column => "my_id"
    tracking_column_type => "timestamp"
    last_run_metadata_path => "/opt/logstash/tags2"
    use_column_value => true
    tags => ["tags2"]
  }
....

> output 
{
  if ("tags1" in [tags]
    ) {
    elasticsearch {
      hosts => ["localhost:9200"]
      index => "test"
      user => user
      password => *********
      document_id => "%{my1_id}"
      doc_as_upsert => true
      action => "update"
    }
  }
  if ("tags2" in [tags]
    ) {
    elasticsearch {
      hosts => ["localhost:9200"]
      index => "test"
      user => user
      password => *********
      document_id => "%{my2_id}"
      doc_as_upsert => true
      action => "update"
    }
  }
  if ("tags3" in [tags]
    ) {
    elasticsearch {
      hosts => ["localhost:9200"]
      index => "test"
      user => user
      password => *********
      document_id => "%{my3_id}"
      doc_as_upsert => true
      action => "update"
    }
  }
}

```

---

<div class="post-metadata">

**Author:** ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)\
**Post date:** [September 3, 2021, 2:51pm UTC](https://discuss.elastic.co/t/document-id/283269/2 "2021-09-03T14:51:30Z")

</div>

У вас, скорее всего, id документов с разными тэгами пересекаются, и когда вы сваливаете все в один индекс одни документы переписывают уже существующие. Самый простой способ - добавить значение тэгов к id документа, чтобы у всех документов был уникальный id.

---

<div class="post-metadata">

**Author:** ![cva](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/cva/32/85514_2.png) [@cva](https://discuss.elastic.co/u/cva)\
**Post date:** [September 21, 2021, 10:12am UTC](https://discuss.elastic.co/t/document-id/283269/3 "2021-09-21T10:12:38Z")

</div>

Спасибо за ответ! Данный способ не проверил, ограничился тем, что сделал несколько индексов test1, test2, test3 и объединил их в один шаблон test\*.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [October 19, 2021, 10:13am UTC](https://discuss.elastic.co/t/document-id/283269/4 "2021-10-19T10:13:25Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
