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

本文关键字:用于 查询 索引 Lucene 一个 添加 字符串 | 更新日期: 2023-09-27 18:19:34

我正试图在一个有空格的字符串中添加一个反斜杠。我使用的是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这样的应用程序中起作用?

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

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

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

这可能会有所帮助。

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