Актуальность и Solr Группировка

Скажем, у меня есть следующая коллекция веб-страниц в индексе Solr:

+-----+----------+----------------+--------------+
|  ID |  Domain  |     Path       |    Content   |
+-----+----------+----------------+--------------+
|  1  |  1.com   |  /hello1.html  |  Hello dude  |
|  2  |  1.com   |  /hello2.html  |  Hello man   |
|  3  |  1.com   |  /hello3.html  |  Hello fella |
|  4  |  2.com   |  /hello1.html  |  Hello sir   |
...

И я хочу запрос для hello показать результаты, сгруппированные по доменам, например:

Results from 1.com:
  /hello1.html
  /hello2.html
  /hello3.html

Results from 2.com:
  /hello1.html

Как определяется порядок сортировки по баллам? Я обычно использую комбинацию TF/IDF и PageRank для своих результатов, но так как это вычисляет баллы для каждого отдельного элемента, как оно определяет, как упорядочить группы? Что если 1.com/hello3.html и 1.com/hello2.html имеют очень низкую релевантность, но два результата, тогда как 2.com/hello1.html имеет действительно высокую релевантность и только один результат? Или наоборот? Или релевантность суммируется, когда в поле группировки несколько элементов?

Я огляделся вокруг, но не смог найти хорошего ответа на это.

Благодарю.

1 ответ

Решение

Мне кажется, что вы используете группировку результатов. Если это так, то группы сортируются в соответствии с sort параметр, и записи в каждой группе сортируются в соответствии с group.sort параметр. Если вы сортируете группы по sort=score desc (это значение по умолчанию, поэтому вам не нужно его указывать), затем оно сортирует группы по баллам каждой группы. Как определяется эта оценка, не очень понятно, но если вы посмотрите на примеры в связанной документации, вы увидите следующее утверждение:

Группы отсортированы по количеству лучших документов в каждой группе.

Итак, в вашем примере, если 2.com hello1.html был наиболее релевантным документом в вашем наборе результатов, "Результаты из 2.com" были бы вашей наиболее релевантной группой, даже если "Результаты из 1.com" включают в себя три раза документ сосчитать.

Если это не то, что вы хотите, ваши лучшие варианты, чтобы предоставить другой sort пост-обработка параметра или результата. Например, для одного проекта, в котором я принимал участие (где у нас было очень скромное количество групп), мы выбрали получение трех лучших результатов для каждой группы, а при постобработке мы рассчитали наш собственный порядок сортировки для групп на основе комбинация их оценок и значений numFound. Такая стратегия могла бы быть непозволительной для случаев со слишком большим количеством групп, и, возможно, не будет хорошей идеей, если более многочисленные группы рискуют затруднить поиск наиболее важных документов.

Другие вопросы по тегам