Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 21, 2014 20:43:08

zlodiak
От: Россия
Зарегистрирован: 2014-01-19
Сообщения: 159
Репутация: +  0  -
Профиль   Адрес электронной почты  

Поиск с выводом части текста

вопрос у меня отчасти телепатический, но меня устроит если только укажете направление, в котором копать

сделал встроенными средствами django1.6 простейший поиск. вот его основа

def search_result(request): message = '' result = None
if 'search_phrase' in request.GET and request.GET['search_phrase']:
    try:
        search_phrase = request.GET['search_phrase']
        result = Page.objects.filter(Q(title__icontains=search_phrase)|Q(content__icontains=search_phrase))
        if not len(result):
            message = u'По вашему запросу не найдено ни одной статьи.'
    except Exception:
        message = u'Извините. В данный момент доступ к базе данных невозможен. Попробуйте повторить ваш запрос позже.'
else:
    message = u'Вы не ввели данные в строку запроса'
t = loader.get_template('search_result.html')
c = RequestContext(request, {
    'result': result, 
    'message': message,
    'title': 'Результаты поиска',
})
return HttpResponse(t.render(c))
он работает, но в результате выводит только список заголовков страниц, в которых нашлисб совпадения, а хотелось бы чтобы выводилось так же часть текста, в котором нашлась искомая фраза. например 100 символов до, сама фраза поиска, сто символов после. такое возможно сделать, используя только встроенные средства? если да, то как скажите пожалуйста

Офлайн

#2 Апрель 22, 2014 05:51:43

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Поиск с выводом части текста

>>> но в результате выводит
Где выводит в каком месте и как?
>>> такое возможно сделать
Возможно, запросы придется разделить на поиск по заголовку и поиск по контенту, а дальше в цикле решить задачу поиска вхождения подстроки в строку и разбиения строки на 100 символов до, сама фраза поиска, сто символов после



Офлайн

#3 Апрель 22, 2014 14:42:34

zlodiak
От: Россия
Зарегистрирован: 2014-01-19
Сообщения: 159
Репутация: +  0  -
Профиль   Адрес электронной почты  

Поиск с выводом части текста

в общем помогло. спасибо

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version