Я использую Web.py и sqlite3.I есть каталог библиотеки, хранящейся в базе данных со следующей схемойразделенных запятыми Multiple поиск по ключевым словам
booklog(id,book_name,author,genre,language)
Я хочу искать через базу данных с помощью одного текстового поля. например, если я нахожу XYZ, я получаю все результаты, в которых XYZ возникает, как имя автора/книги/genre. Я получаю этот результат с простым запросом с OR. Проблема, которую я имею сейчас, - это когда я хочу искать несколько ключевых слов, разделенных через запятую через одно и то же текстовое поле. Результат должен состоять из строк с двумя ключевыми словами, за которыми следует одно ключевое слово.
Я могу разделить ключевые слова, чтобы список и поиск .Но я не сортировать таблицу с нисходящим нет матчей, также сортировки NoCase не работает в списке:
inp=web.input()
key=inp.search.split(',')
myvar=dict(t=key)
result=db.query("select * from booklog where book_name in $t collate nocase or author in $t collate nocase or genre in $t collate nocase ",myvar)
return render.bookview(result)
Есть ли другой способ сделать это в web.py? Я относительно новичок в python/web.py/sqlite3
да, я хочу делать с sqlite3.the FTS, но не упоминает о совпадении в списке. Сколько вам спасибо за быстрый ответ. :) – Rishin
Вы не используете список с FTS. Вы напрямую ищете строку. Настройка таблиц FTS - это то, что требует усилий с вашей стороны. – Chandranshu
@Rishin - см. Мой обновленный ответ и, пожалуйста, прочитайте этот раздел. – Chandranshu