Я использую текст оракула для опережающего чтения (согласно писателю спецификации) в строке поиска.
По сути, пользователь может начать вводить текст, и мы заполним панель предложений вероятными совпадениями.
Я попытался использовать для этого текст оракула и столкнулся с некоторыми проблемами, последняя из которых:
Таблица содержит эту запись для текста ответа: ... мы предлагаем множество вариантов ценообразования ...
SELECT
questiontext as qtext,
answertext as text,
questionid FROM question
WHERE contains(answertext, '{pric}', 1) > 0
;
Этот запрос ничего не возвращает. Но использование {pricing} вернет правильный результат.
И предложение, почему это происходит, было бы здорово!
Изменить: просто хотел добавить, что использование основы не работает для меня, потому что пользователь хочет различать «отчет» и «отчетность», и они хотят, чтобы совпадающая подстрока была выделена, что можно сделать, если я могу найти подстроку среди возвращенных Результаты.
Редактировать 2: я предполагаю, что оракул токенизирует каждое слово, используя какую-то границу слова в индексе, и, таким образом, без каких-либо подстановочных знаков он ищет токен, равный = 'pric', и поэтому не находит его (потому что есть токен «цена»). Итак, если это предположение верно, мне бы очень хотелось, чтобы кто-нибудь подсказал, как я могу заставить приведенный выше запрос работать с записью примера, сохраняя при этом пробелы, поэтому, если я наберу «ценовые варианты», он должен вернуться, но если я наберу «много вариантов», это не должно...