向字符串中添加一个反斜杠以用于查询Lucene索引



我正试图在一个有空格的字符串中添加一个反斜杠。我使用的是String.Format方法。这是代码。

query = "Field1:Web Services";
var hasSpaces = query.Contains(" ");
if (hasSpaces)
{
   var qfix = 'u005c' + " "       
   var newQueryString = query.Replace(" ", qfix);
}

我希望看到这样的字符串如果query = "Field1:Web Services";则CCD_ 3但我看到的是"Field1:Web\ Services"

因此,对于需要在查询空间之前加上反斜杠的Lucene查询,这将不起作用。甚至使用删除反斜杠var newQueryString2 = newQueryString.Replace("\", @"");不工作

顺便说一句,我曾尝试在查询参数周围使用双引号,但这样做时会得到转义反斜杠。所以

var query2 = string.Format("{0}:"{1}"", Field1, Field2);

给我Field1:"Field2",同样,带有反斜杠。

我不确定的是,为什么我可以在Linqpad中做这个小动作,但在VS.NET4.5应用程序中却没有得到相同的结果。

我在谷歌上搜索了很多方法,包括使用字符串文字和使用"\",但我总是得到第二个反斜杠,无法使用查询删除。替换方法。为什么上面的代码在VS中不起作用,而在Linqpad这样的应用程序中起作用?

您是否尝试用"?"替换空格比如下面?

var parsed = query.Replace(" ", "?");

这可能会有所帮助。

请尝试以下操作:var qfix=@"\";

最新更新