Дополнительные критерии полнотекстового заказа, выходящие за рамки релевантности по умолчанию - PullRequest
1 голос
/ 21 марта 2010

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

"Соус томатный лайт хайнц"

Я обнаружил, что, поскольку в базе данных много ингредиентов с очень похожими названиями, простая сортировка по релевантности не работает так часто. Итак, я обнаружил, что сортирую по множеству собственных эмпирических правил, которые, вероятно, дублируют большую часть алгоритма полнотекстового поиска, который выдает числовую релевантность. Например (сокращенно):

ЗАКАЗАТЬ ПО [название ингредиента является точно поисковым термином], [название ингредиента начинается с поискового запроса], [имя ингредиента начинается с любого слова из поиска и содержит все поисковые термины в некотором порядке], [имя ингредиента содержит все поисковые термины в некотором порядке],

... и так далее. Каждый из них определен в спецификации SELECT как выражение, возвращающее либо 1, либо 0, и поэтому я упорядочиваю их по порядку.

Я хотел бы услышать предложения для:

  • Лучший способ определить сложные критерии упорядочения в одном месте, скажем, возможно, в представлении или хранимой процедуре, в которую можно передать только искомое условие и получить набор результатов, не беспокоясь о том, как они заказывали?
  • Лучший инструмент для этого, чем полнотекстовый движок MySQL - возможно, если бы я использовал Sphinx или что-то [о чем я слышал, но раньше не использовал], я бы нашел какой-то сложный вариант конфигурации, предназначенный для решения подобных проблем
  • Некоторые поисковые запросы в Google, которые могут привести к обсуждению того, как упорядочить текстовые элементы в определенном домене, как это? Я не нашел много полезного.

Спасибо за чтение!

1 Ответ

0 голосов
/ 07 декабря 2010

Джереми,

То, что вы ищете, это повышение ранга, которое поддерживается Solr. Вот ссылка, где вы можете узнать больше об этом:

http://wiki.apache.org/solr/SolrRelevancyCookbook#Ranking_Terms

...