Сокращение аналогичных лучших результатов в выводе результатов solr
У меня есть поиск в solr, который возвращает около 1500 документов. Эти документы в основном продукты. Например, у меня есть набор женской обуви в моем наборе данных. В моем наборе данных представлен широкий ассортимент женской обуви, но он также дает очень похожие результаты, например, женские кроссовки Nike 11-го размера, женские кроссовки NIKE 10-го размера и т. Д. Теперь, когда я ищу женскую обувь, набираю очки. вызывает появление определенного набора этих результатов, которые очень похожи друг на друга. Например, все цвета одной конкретной модели обуви могут достигать вершины. Это, безусловно, разные продукты, но я бы предпочел получить более широкий спектр результатов, чем просто каждый цвет кроссовок Nike.
У кого-нибудь есть предложения? Обратите внимание, я не хочу исключать все индивидуально окрашенные продукты. Когда кто-то ищет синие женские кроссовки, я хочу, чтобы они получили синюю модель как лучший результат. Я использую запрос dismax в качестве основного запроса. То, что я хотел бы сделать, это в основном повысить некоторый фактор "уникальности имени по сравнению с другими результатами".
1 ответ
Вы можете свернуть поля типа color или около того:
http://wiki.apache.org/solr/FieldCollapsing
или вы можете использовать почти двойное обнаружение при индексации:
http://wiki.apache.org/solr/Deduplication
http://karussell.wordpress.com/2010/12/23/detect-stolen-and-duplicate-tweets-with-solr/
последний алгоритм реализован в джетвике для твитов, поэтому он должен работать для заголовков, но не достаточно производительный для больших документов (так что только обнаружение плагиата для "коротких" строк). для длинного текста вам понадобится локальное хеширование: