Я столкнулся с одной проблемой, связанной с поиском, содержащим текст, такой как (&, #). Когда я ищу -> Filewith & DownloadSuccessfully.docx и выбираю отладочный запрос, я вижу, что мой разобранный запрос разбивается на две части, как показано ниже, следовательно, это не дает любые результаты, и мое приложение выдает ошибку как ->
"rawquerystring":"Filewith&DownloadSuccessfully.docx",
"querystring":"Filewith&DownloadSuccessfully.docx",
"parsedquery":"content:filewith content:downloadsuccessfully.docx",
"parsedquery_toString":"content:filewith content:downloadsuccessfully.docx",
"QParser":"LuceneQParser"
Ошибка ->
using (HttpResponseMessage response = solrClient.Value.GetAsync(urlFormat).Result)
{
using (HttpContent content = response.Content)
{
downloadString = content.ReadAsStringAsync().Result;
}
}
//downloadString contains this error
"error":{
"metadata":[
"error-class","org.apache.solr.common.SolrException",
"root-error-class","org.apache.solr.parser.TokenMgrError"],
"msg":"org.apache.solr.search.SyntaxError: Cannot parse 'content:\"Filewith': Lexical error
at line 1, column 18. Encountered: <EOF> after : \"\\\"Filewith\"",
"code":400}}
Я использую StandardTokenizer, и я не могу изменить его на WhiteSpaceTokenizer, так как у меня нет свободы индексировать весь производственные данные. Поэтому у меня есть только возможность изменить мой C# код на стороне клиента.
Пожалуйста, предложите?