Я работаю над поисковой системой внутри компании, написанной на python, использующей флягу и sqlalchemy (sqlite). Моя текущая проблема в том, что я бы хотел.Python Flask Sqlalchemy Subst Query
A.) Запрос на определенное количество информации для поля описания B.) Предпочтительный запрос перед ним 50 символов и после него.
Очень похоже на Google в поле ссылки. Если вы что-то ищете, он возвращает ссылки со 100 символами слов ниже.
Я читал документацию и обнаружил, что в sqlalchemy нет функции mid(). Я также заметил, с этого поста, что SQLAlchemy только поддерживает макс, мин, и Avg sqlalchemy: get max/min/avg values from a table
SQL Documentation функций http://docs.sqlalchemy.org/en/latest/core/functions.html
Я пытался реализовать такой запрос
links = Item.query(func.mid(Item.description, 0, 200).like('%helloworld%'))
I releazed sqlite имеет синтаксис Substr и попытался Item.query.filter (func.substr (Item.description, 0, 200) == '% helloworld%')
Есть ли способ в sqlalchemy для навигации по этой проблеме?
Мой код:
from sqlalchemy.sql.functions import func
def mainSearch(searchterm):
links = Item.query(func.mid(Item.title, 1, 3).Item.title.like('%e%'))
return links
HTML/Дзиндзя код:
{% for link in links.items %}
<div id="resultbox">
<div id="linkTitle"><h4><a href="{{ link.link }}">{{ link.title }}</a></h4> </div>
<div id="lastUpdated">Last Updated: {{ link.last_updated }} </div>
<div id="linkLink">{{ link.link }}</div>
<div id="linkDescription">{{ link.description | safe }}</div>
</div>
Ошибка
TypeError: объект 'BaseQuery' не отозваны
Моя база данных: Sqlite
Я хотел запроса в SQL тоже похоже:
SELECT MID(column_name,start,length) AS some_name FROM table_name;
В целом я пытаюсь сделать это в данных мы делаем запрос в колонке Описание:
Пример текста:
Статья (сокращенно ART) - это слово (префикс или суффикс), который используется рядом с существительным, чтобы указать тип ссылки, создаваемой существительным. Статьи определяют грамматическую определенность существительного, на некоторых языках, распространяющихся на объемный или численный охват. Статьи на английском языке - это и a/an, и (в некоторых контекстах) некоторые. «А» и «а» - это современные формы древнеанглийского «а», который в англоязычных диалектах был числом «один» (ср. «На», в саксонских диалектах) и сохранился в современных шотландцев как число «ован». И «на» (отменяемый «один» норманнами), и «а» сохранились в современном английском языке, причем «один» использовался как число и «an» («a», перед существительными, начинающимися созвучным звуком), как неопределенный артикль.
Во многих языках статьи - это особая часть речи, которую невозможно легко комбинировать с другими частями речи.На английском языке статьи часто рассматриваются как часть более широкой речевой категории, называемой детерминантами, которая объединяет статьи и демонстрационные материалы (такие как «это» и «это»).
В языках, где используются статьи, каждое общее существительное за некоторыми исключениями выражается определенной определенностью (например, определенной или неопределенной), так же, как многие языки выражают каждое существительное с определенным грамматическим числом (например, единичным или множественным числом). Каждое существительное должно сопровождаться статьей, если таковая имеется, соответствующей ее определенности, и отсутствием статьи (считающейся нулевой статьей) сама определяет определенную определенность. Это отличается от других прилагательных и определяющих факторов, которые обычно являются необязательными. Этот обязательный характер статей делает их одними из самых распространенных слов на многих языках - на английском языке, например, наиболее частое слово - это. [1]
Изделия обычно характеризуются либо как определенные, либо неопределенные. [2] Несколько языков с хорошо развитыми системами статей могут различать дополнительные подтипы. В каждом типе языки могут иметь различные формы каждой статьи в соответствии с грамматическими атрибутами, такими как пол, число или случай, или в соответствии с соседними звуками.
К этому
статью (сокращенно АРТ) слово (префикс или суффикс), который используется вместе с существительным, чтобы указать тип ссылки, вносимый существительного. Статьи определяют грамматическую определенность существительного,
Так что это не разрушает базу данных, хватая текст длиной 100 000 слов. Мне нужны только первые 100
Это для базы данных SQL, правильно? Не Postgres или MySQL? – dizzyf
SQLAlchemy не выполняет какие-либо функции, перечисленные вами. 'func' является общим (с некоторой поддержкой переносимости) и создает любое выражение функции SQL, которое вы выбрасываете на него. Какая БД вы используете, и имеет ли она функцию 'mid', которую вы хотите использовать? Также, если у вас есть ошибка, включите ее и полную трассировку. –
Из документации «Любое имя может быть присвоено функции func. Если имя функции неизвестно SQLAlchemy, оно будет отображаться точно так же, как есть». –