Я реализую панель поиска, которая должна искать 2 основные строки A и B
Я отдаю приоритет результатам следующим образом (от наиболее важного к наименее)
- результат, объединяющий A и B
- результат только для B
- результат только для A
так, например, если я ищу "Египет" + "Пирамиды"
я хочу, чтобы мои первые результаты были для таких вещей, как «Египетские пирамиды», за которыми следуют результаты о «пирамидах» в целом или в виде геометрической фигуры и т. д., а затем, наконец, результаты для «Египта»
Я пробую несколько поисковых API, таких как Google и Bing, в настоящее время я делаю то, что сначала я ищу оба, чтобы получить набор результатов X, а затем только B, чтобы получить то, что я называю положительным списком, а затем только поиск A чтобы получить отрицательный список .. Я оцениваю результаты в X и штрафую их, если они существуют в отрицательном списке, даю им бонус, если они существуют в положительном списке, затем в конце я складываю все, что осталось в положительном списке, чтобы X ..
Это работает хорошо, но все еще недостаточно хорошо, мне было интересно, может ли кто-нибудь помочь мне с дополнением к этому простому алгоритму или совершенно другой идее