Статьи

Изменение релевантности результатов Solr с помощью поля «Вспомогательное повышение»

Английский — это запутанный язык. Я имею в виду, действительно ли имеет смысл, что вы можете припарковаться на подъездной дороге или ехать на бульваре? Кроме того, меня всегда удивляло, что на самом деле существует класс слов, которые являются их собственным антонимом — так называемые «авто-антонимы»:

расколоть  — 1] Разделить или разорвать (что-то) 2]

ужасно  — 1] достойно благоговения 2] очень плохо

пропустить  — 1] осмотреть 2] не заметить

К сожалению, запутанная природа английского языка (и всех естественных языков) иногда имеет последствия, которые могут повлиять на нашу прибыль. Рассмотрим ситуацию, которая  Zappos!  когда-то возвращался с результатами поиска:  если я ищу пару «туфель», то чего мне ждать?

Вы ожидаете, что я увижу страницу, полную коричневой или черной кожаной обуви, верно? К сожалению, у Solr были разные мнения. По умолчанию страница была заполнена не только классическими туфлями, но и сарафанами, теннисными туфлями и классическими брюками! И в некотором смысле это имеет смысл, верно? Под капотом Solr действительно сложный и производительный двигатель, соответствующий токенам.

К счастью для Zappos, большая часть их проблемы была облегчена путем повышения более высокого соответствия фраз. Так что если в тексте «платье» и «обувь» встречаются рядом друг с другом, то этот документ поднимется вверх. Тем не менее, некоторые сайты электронной коммерции испытывают большие трудности с этой проблемой, и это приводит их к экстремальным и даже несколько пагубным подходам. Например, некоторые компании создают решения для особых случаев —  решения для бандитов — так что если они увидят определенную строку запроса, они полностью обойдут свою поисковую систему и предоставят ручной набор результатов. Это очень хрупкий подход, потому что с каждым обновлением инвентаря, с каждым новым партнерством и с каждой новой рекламной кампанией кто-то должен просматривать все эти исправления и проверять их актуальность.

Есть лучший подход, красивый в своей простоте и гибкости. Solr и ElasticSearch рассматривают каждый элемент в вашем инвентаре как  документ,  который имеет различные поля, которые соответственно имеют свои собственные значения. Таким образом, для Zappos документ может содержать SKU, название товара, название бренда, описание и цену. Но нет причины, по которой вы не можете включать дополнительные поля, которые используются для изменения релевантности конкретного документа в конкретном поиске. Мы называем эти поля  вспомогательными повышающими полями,  и они работают так: Рассмотрим снова   проблему с обувью . Если каждый документ в вашем индексе имеет два дополнительных поля,  AuxiliaryBoost и AuxiliaryBustТогда мы сможем жестко контролировать результаты поиска и то, как они сортируются. Как эксперт по мерчендайзингу, если вы видите документ, который не должен появляться в результатах поиска, например сарафан, вы добавляете в AuxiliaryBust поле строку запроса . Соответственно, если вы найдете документ, который действительно должен быть отсортирован выше в наборе результатов, тогда вы добавляете строку запроса в AuxiliaryBoost поле. Последняя часть этой головоломки — это небольшое изменение, которое вы вносите в реальный запрос, который идет к Solr. Чтобы избавиться от всех плохих результатов, вы добавляете запрос фильтра, чтобы удалить те документы, которые имеют совпадение в AuxiliaryBust поле:

fq=-AuxiliaryBust:(dress shoes)

Чтобы продвигать те документы, которые действительно заслуживают того, чтобы быть на вершине, вы просто добавляете  AuxiliaryBoost поле к набору полей, по которым вы ищете, и применяете соответствующее повышение.

qf=SKU^10ItemName^5ItemDescription^3Brand^4AuxiliaryBoost^1
pf=ItemDescription^3AuxiliaryBoost^2

Теперь, если вы — эксперт по мерчендайзингу, читая это, вы, вероятно, снова расстраиваетесь из-за того, что у вас нет простого способа добавить поля или изменить текст, который они содержат. Кроме того, если вам нужно настроить усиление определенных полей, ваши руки одинаково связаны. Мы признавали эту проблему снова и снова, и в результате мы находимся в процессе создания  SolrPanl — панель поиска поведения, связанная с мерчендайзером. В качестве мерчендайзера SolrPanl позволит вам создать контрольный пример «проблемных поисков» для мониторинга и изменения. Если вы видите поиск, который дает особенно плохие результаты, тогда вы сможете настроить усиление различных полей с помощью простого пользовательского интерфейса, состоящего из ползунков и полей выбора. Когда вы измените эти параметры, вы сразу увидите, как влияют результаты поиска. (В прошлом вам приходилось указывать своей технической команде внести изменения, а затем проверить позже, чтобы увидеть результаты.) Если вы обнаружите, что документ в определенном наборе результатов поиска оказывается ниже, чем должен, мы предоставим вам Вы инструменты, чтобы понять,  почему  это происходит. Наконец, вы также сможете изменять документы напрямую, добавляя строки запросов в такие поля, как AuxiliaryBoost и  AuxiliaryBust. Вы даже можете делать простые вещи, такие как исправление опечаток!

Если вы заинтересованы, тогда, пожалуйста, следите за нашим постоянным развитием SolrPanl здесь . Кроме того,  спросите нас о том, как стать бета-тестером!