Ну, самая легкая вещь сделать состояла бы в том, чтобы дать необработанную форму запроса выстрел, и если это перестало работать, отступите к чистке его.
Query safe_query_parser(QueryParser qp, String raw_query)
throws ParseException
{
Query q;
try {
q = qp.parse(raw_query);
} catch(ParseException e) {
q = null;
}
if(q==null)
{
String cooked;
// consider changing this "" to " "
cooked = raw_query.replaceAll("[^\w\s]","");
q = qp.parse(cooked);
}
return q;
}
Это дает необработанную форму запроса пользователя шанс работать, но при парсинге сбоев, мы разделяем все кроме букв, чисел, пробелов и подчеркиваний; тогда мы попробовали еще раз. Мы все еще рискуем бросать ParseException, но мы решительно уменьшили разногласия.
Вы могли также рассмотреть маркирование запроса пользователя сами, превратив каждый маркер в запрос термина и glomming их вместе с BooleanQuery. Если бы Вы действительно не ожидаете, что Ваши пользователи используют в своих интересах функции QueryParser, который был бы лучшим выбором. Вы были бы абсолютно (?) устойчивы, и пользователи могли искать любые забавные символы, сделает его через Ваш анализатор
One way is the following:
First, handle the post_save
signal from Django. Note that post_save
passes your handler a boolean parameter created
to let you know whether it's a new object that was saved.
Then, call the python-twitter
library's PostUpdate
function within your handler to notify on twitter:
Попробуйте использовать функцию post_to_twitter ()
из этого: http://www.djangosnippets.org/snippets/1339/