# Проблемы со скорингом

**URL:** <https://discuss.elastic.co/t/topic/218317>\
**Category:** Вопросы на русском языке\
**Created:** [February 7, 2020, 10:18am UTC](https://discuss.elastic.co/t/topic/218317 "2020-02-07T10:18:42Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![nstrel](https://avatars.discourse-cdn.com/v4/letter/n/7ba0ec/32.png) [@nstrel](https://discuss.elastic.co/u/nstrel)\
**Post date:** [February 7, 2020, 10:18am UTC](https://discuss.elastic.co/t/topic/218317/1 "2020-02-07T10:18:42Z")

</div>

Выполняю поиски по десяти различным массивам. Массивы состоят из слов, словосочетаний (преимущественно русский и английский), а также из придуманных обозначений, например "}{отта6Ь1ч".  
Результаты поиска по нескольким индексам должны быть сравнимы по скорингу, поэтому использую формулу ранжирования, не зависящую от индекса:

> ```
> {
> "custom": {
> "type": "scripted",
> "script": {
> "source": "return Math.sqrt(doc.freq / doc.length) * query.boost;"
> }
> }
> }
> 
> ```

1. Меня не очень устраивают результаты ранжирования, пока вижу вот такие варианты получения сопоставимого скоринга при поиске по нескольким индексам:

- Использовать другую формулу скоринга, не учитывающую статистическую информацию индексов
- Все данные хранить в одном индексе, добавить поле категории и при поиске фильтровать по категориям (какую тогда лучше формулу использовать?)  
Есть ли еще какие-то варианты, какой будет более точно ранжировать?

1. Подскажите, как настроить ранжирование при поиске по биграммам.  
Например, ищется "SIBERIKA"

> ```
> {
> "query": {
> "multi_match": {
> "fields": ["title.bigram"],
> "query": "SIBERIKA"
> }
> }
> }
> 
> ```

Скоринг получается такой:  
"UBER" - скоринг 1.1547005, совпадают 2/3 биграм  
"SIBIRICA" - скоринг 1.1338934, совпадает 3/7 биграм  
Как более похожее SIBIRICA вывести раньше UBER?

1. Подскажите, как настроить ранжирование при поиске по нескольким словам.  
По запросу

> ```
> {
> "query": {
> "multi_match": {
> "fields": ["title"],
> "query": "непоседа сити",
> "fuzziness": "AUTO:4,7",
> "fuzzy_transpositions": false
> }
> }
> }
> 
> ```

Документы "напоседа" и "сити" идут со скорингом 1, как сделать так, чтобы более длинные слова давали больший вклад в скоринг, чем короткие?

---

<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 7, 2020, 1:01pm UTC](https://discuss.elastic.co/t/topic/218317/2 "2020-02-07T13:01:57Z")

</div>

А чем вас [`dfs_query_then_fetch`](https://www.elastic.co/blog/understanding-query-then-fetch-vs-dfs-query-then-fetch) не устраивает?

---

<div class="post-metadata">

**Author:** ![nstrel](https://avatars.discourse-cdn.com/v4/letter/n/7ba0ec/32.png) [@nstrel](https://discuss.elastic.co/u/nstrel)\
**Post date:** [February 10, 2020, 4:23pm UTC](https://discuss.elastic.co/t/topic/218317/3 "2020-02-10T16:23:36Z")

</div>

Спасибо, [`dfs_query_then_fetch`](https://www.elastic.co/blog/understanding-query-then-fetch-vs-dfs-query-then-fetch) похоже на то, что надо

---

<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 9, 2020, 4:23pm UTC](https://discuss.elastic.co/t/topic/218317/4 "2020-03-09T16:23:38Z")

</div>

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