Улучшить актуальность дедуплицированных результатов - PullRequest
0 голосов
/ 23 января 2020

Я использую отличительную особенность Algolia для дедупликации больших HTML страниц, как в этой статье:

https://www.algolia.com/doc/guides/sending-and-managing-data/prepare-your-data/how-to/indexing-long-documents/

HTML - это разбить на отдельные записи для каждого абзаца. Записи выглядят примерно так:

[
  {
    "title": "Algolia",
    "section": "",
    "permalink": "https://en.wikipedia.org/wiki/Algolia",
    "content": "Algolia is a U.S. startup."
    "pageId": 1,
  },
  {
    "title": "Algolia",
    "section": "Company",
    "permalink": "https://en.wikipedia.org/wiki/Algolia",
    "content": ""
    "pageId": 1,
  },
  {
    "title": "Algolia",
    "section": "Company",
    "permalink": "https://en.wikipedia.org/wiki/Algolia",
    "content": "The company started with two data centres in Europe and the US."
    "pageId": 1,
  },
  {
    "title": "Algolia",
    "section": "Products and Technology",
    "permalink": "https://en.wikipedia.org/wiki/Algolia",
    "content": "The Algolia model provides search as a service."
    "pageId": 1,
  },
  ...
]

Дедупликация прекрасно работает, когда отображается только один результат для совпадений с вышеуказанными записями, когда pageId используется как attributeForDistinct.

My Вопрос в том, как я могу сказать Algolia использовать запись с большинством совпадений. Под этим я подразумеваю, если вы ищете в приведенных выше записях слово: компания Я бы хотел, чтобы была возвращена третья запись, поскольку она совпадает как в полях раздела, так и в полях контента.

Предполагается, что мы устанавливаем searchableAttributes из title, section и content для вышеуказанного набора данных, который мы находим с нашими собственными записями, что они сопоставляются на основе порядка searchableAttributes, который мы установили, это все хорошо, но, похоже, не существует способа учесть, сколько совпадений во всех этих searchableAttributes записях есть.

Поэтому, используя приведенный выше примерный набор данных, мы часто возвращаем запись 2, хотя по-прежнему указывает на ту же страницу, содержание не столь актуально.

Я предполагаю, что это сделано намеренно, так как совпадение уже найдено, поэтому Алголии не нужно продолжать поиск в других полях для поиска. Только я не вижу способа сортировки этих дедуплицированных результатов, который затем учитывает совпадения в этих других полях, чтобы повысить релевантность возвращаемой записи.

Любая помощь в понимании того, как сортировать эти де дублированные результаты будут потрясающими.

...