# Почему не работает dfs\_query\_then\_fetch?

**URL:** <https://discuss.elastic.co/t/dfs-query-then-fetch/262474>\
**Category:** Вопросы на русском языке\
**Created:** [January 28, 2021, 10:24am UTC](https://discuss.elastic.co/t/dfs-query-then-fetch/262474 "2021-01-28T10:24:19Z")\
**Posts on this page:** 5\
**Page:** 2

<div class="post-metadata">

**Author:** ![mayya](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mayya/32/83147_2.png) [@mayya](https://discuss.elastic.co/u/mayya)\
**Post date:** [February 2, 2021, 8:44pm UTC](https://discuss.elastic.co/t/dfs-query-then-fetch/262474/21 "2021-02-02T20:44:12Z")

</div>

Неучитывание deleted docs при подсчете \_score это не bug, а feature 😉  
При создание индекса и terms dictionarу, мы подсчитываем и сохраняем для каждого термина `idf` и мы не пересчитываем `idf` если документы удаляются. Это позволяет нам сохранять индекс в неизменном форме и также позволяет делать запросы очень быстрыми.  
`idf` пересчитывается когда мы создаем новый индекс-сегмент, что происходит при merging.

> А `PIT` надо еще тестировать на производительность - всегда найдется тот кто сделает 837 snapshot-а и будет жалосться на производительнолсть ФС.

Eсли индекс не меняется, opening еще один PIT - это очень дешевая операция

---

<div class="post-metadata">

**Author:** ![GreenX](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/greenx/32/51751_2.png) [@GreenX](https://discuss.elastic.co/u/GreenX)\
**Post date:** [February 2, 2021, 10:07pm UTC](https://discuss.elastic.co/t/dfs-query-then-fetch/262474/22 "2021-02-02T22:07:35Z")

</div>

> [@mayya](#):
>
> Неучитывание deleted docs при подсчете \_score это не bug, а feature

Я сейчас читаю, документацию на которую Игорь дал ссылку - она многое объясняет.  
Согласитесь, всё же мысль не лишена логики, что при одном и том же запросе в неизмененный индекс \_score ожидаешь тот же, в общем с этим ладно.

Я понимаю, что при асинхронной репликации есть какой то лаг накатывания, но тут то поток данных ни о чём. Тот индекс, что брали для примера сутки назад документов меньше 10000. Вот сегодня.

```auto
{
  "indices": {
    "help3": {
      "shards": {
        "0": [
          {
            "docs": {
              "count": 3136,
              "deleted": 1354
            }
          },
          {
            "docs": {
              "count": 3136,
              "deleted": 1343
            }
          }
        ],
        "1": [
          {
            "docs": {
              "count": 3226,
              "deleted": 219
            }
          },
          {
            "docs": {
              "count": 3226,
              "deleted": 219
            }
          }
        ]
      }
    }
  }
}

```

Почему шарды не засинкались за сутки, а только разошлись?

---

<div class="post-metadata">

**Author:** ![GreenX](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/greenx/32/51751_2.png) [@GreenX](https://discuss.elastic.co/u/GreenX)\
**Post date:** [February 4, 2021, 6:54pm UTC](https://discuss.elastic.co/t/dfs-query-then-fetch/262474/23 "2021-02-04T18:54:33Z")

</div>

Игорь, Майя! (@Igor_Motov , @mayya ) я правильно понимаю, что репликация идет на уровне ElasticSearch, а на уровне Lucene каждый шард сам по себе?

---

<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:** [February 4, 2021, 8:42pm UTC](https://discuss.elastic.co/t/dfs-query-then-fetch/262474/24 "2021-02-04T20:42:05Z")

</div>

> [@GreenX](#):
>
> Игорь, Майя! (@Igor_Motov , @mayya ) я правильно понимаю, что репликация идет на уровне Elasticsearch, а на уровне Lucene каждый шард сам по себе?

Да, репликация осуществляется Elasticsearch на уровне документа. Каждая шарда - это независимый индекс Lucene. Единственная гарантия тут - это то что все шарды содержат одинаковый набор не удаленных документов. Чистка удаленных документов и слияние сегментов происходит независимо на уровне Lucene.

---

<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:** [March 4, 2021, 8:42pm UTC](https://discuss.elastic.co/t/dfs-query-then-fetch/262474/25 "2021-03-04T20:42:45Z")

</div>

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

[Previous page](https://discuss.elastic.co/t/dfs-query-then-fetch/262474.md?page=1)
