Синтаксис solr для нечеткого поиска:
q~n, где q — термин запроса, а n — расстояние Левенштейна (например, 1-3).
Синтаксис поиска по префиксу:
q*, где q — термин запроса, а * указывает на подстановочный знак.
Объединение обоих, например q~n* (с четным n=1), имеет побочный эффект, заключающийся в том, что почти все совпадает (по причине, которую мне еще предстоит выяснить).
Сочетание обоих, например q*~n (с четным n=1), имеет побочный эффект: запрос выполняется, поскольку это будет только поиск по префиксу.
В нашем случае использования нам нужно предложить предложения, основанные на исторических запросах, хранящихся в index. Этот шов также должен быть тем, что делает Google, когда вы вводите термин с ошибкой, и это отличное решение для предложений. Проблема в том, что мы можем либо предлагать предложения, начинающиеся с одного и того же индекса, либо некоторые с определенным расстоянием Левенштейна ‹= 3, что невозможно, когда речь идет о долгосрочных терминах.
Теперь я знаю, что есть похожий вопрос спросил 3 года назад, где в решении говорится, что невозможно выразить в синтаксисе solr, и весь случай не имеет особого смысла, но, по моему мнению, это имеет смысл, и комбинация была бы идеальным решением практических проблем. .