По сути, у меня есть приложение, которое должно поддерживать как Lucene.NET, так и Amazon CloudSearch.
Итак, я не могу переписать запросы, мне нужно использовать стандартные запросы из lucene и использовать .ToString() в запросе, чтобы получить синтаксис.
Проблема в том, что в Lucene.NET (я не знаю, так ли это в версии java) метод .ToString() возвращает необработанную строку без escape-символов.
Поэтому такие вещи, как:
(title:blah:blah summary:"lala:la")
должно быть
(title:blah\:blah summary:"lala\:la")
Мне нужно регулярное выражение, которое добавит побеги.
Это возможно? и если да, то как это будет выглядеть.
Некоторые дополнительные возможные отклонения:
(title:"this is a search:term")
(field5:"this is a title:term")
Regex.Replace(query, ([-+!(){}[\]^"~*?:]|(?:\|\|)|(?:&&)), "\\$1");
- person Pruthvi Raj   schedule 29.09.2015(?<=\S+?:\S+?):
. - person Wiktor Stribiżew   schedule 29.09.2015