У меня есть приложение, в котором люди могут перечислить вещи, чтобы продать/обменять/отдать, с 200-символьными описаниями. Назовем их продавцами.Обратный поиск Sphinx - при добавлении нового элемента, выполнение поиска по существующим сохраненным ключевым словам
Другие пользователи могут искать вещи - назовем их покупателями.
У меня есть система, созданная с использованием Django, MySQL и Sphinx для текстового поиска.
Предположим, что покупатель ищет «футболки». Они не получают желаемых результатов. Я хочу, чтобы приложение предоставило покупателю возможность проверить коробку, чтобы сказать «Скажи мне, если что-то придет».
Тогда, когда продавец перечисляет «футболку Quicksilver», это приведет к обратному поиску во всех сохраненных результатах поиска, чтобы уведомить этих покупателей о том, что был указан новый элемент, соответствующий их запросу.
Очевидно, что я мог бы инициировать поиск Sphinx по каждому сохраненному поиску каждый раз, когда любой новый элемент отображается (в цикле), чтобы искать совпадения - но это было бы безумным и интенсивным. Это тот эффект, который я хочу достичь разумным способом - как я могу это сделать?
Это отличный старт - благодаря особенно для правильного технического термина. Если бы мы сделали это немного сложнее, например. сохраненный поиск «большой футболки с быстрой ртутью», на определенном расстоянии от определенного местоположения lat/long. Затем, когда новое объявление публикуется с заголовком, например. «Футболка Quicksilver из Австралии - большая, синяя» Мне пришлось бы запускать запрос по этой фразе, используя кворум, но он возвратил бы несколько хитов, которые мне пришлось бы пройти. Будет ли более разумный путь, чем «грубый поиск, прекрасный поиск»? – awidgery
Ну, вы можете сохранить количество слов в обратном индексе, даже с str2wordcount, а затем использовать это, чтобы повлиять на ранжирование. Например, используйте выражение ranker, чтобы продвигать результаты с hit_count, по крайней мере такие же большие, как и атрибут. Это позволяет легко исключить совпадение одного слова - во время пост-обработки. – barryhunter