SQL-запрос относительно поиска к предыдущим искомым словам - PullRequest
0 голосов
/ 17 января 2011

У меня есть список слов в таблице.Я хочу найти все записи, например, книги и книги, ручки и ручки, то есть все слова, которые заканчиваются на «s».Запрос должен показывать слово без 's' и слово с 's' тоже.не запрос "SELECT * FROM words WHERE word LIKE '%s'" определение схемы есть,

words = <word, part_of_speech>

Я должен выполнить поиск по слову. Как я могу это сделать?Результат может быть таким:

book
books
pen
pens

Это что-то вроде того, если в столбце есть значение как «слово», а есть другое значение как «слово» + «s», тогда отображаются строки обоихслово 'и' слово '+' s '.Я использую sqlite.

Ответы [ 3 ]

1 голос
/ 17 января 2011
SELECT word FROM words WHERE word LIKE 'book%'

будет соответствовать 'book', 'books', 'bookmark' и т. Д.

0 голосов
/ 31 января 2011

Гугл "Алгоритм Стемминга Портера" и примените его к своим данным до того, как загрузите его.Этот алгоритм максимально приближен к преобразованию не только множественного числа, но и многих других форм слова в одно слово.например, «ученый» становится «ученым» и тому подобное.

Если это не соответствует вашим стандартам качества, потому что оно не будет ловушкой для «мышей» и других примеров, приведенных в других ответах, вам придетсянайти "файл stemming".Я не знаю ни одного бесплатного (это не значит, что его нет), но тот, который мы используем в моем магазине, является частью коммерческого пакета, поэтому мне никогда не приходилось искать бесплатный.

ВВ любом случае, после того, как вы применили основание к словам на пути, вам больше не нужно искать несколько версий слова, вы просто ищете основание.

0 голосов
/ 17 января 2011

, если вы хотите найти только определенный суффикс, тогда попробуйте

SELECT
    *
FROM
    words
WHERE
    word = '%s'
    or word = '%s' || 's' #change 's' to any addition you want to try
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...