向字符串中添加一个反斜杠以用于查询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这样的应用程序中起作用?
您是否尝试用"?"替换空格比如下面?
var parsed = query.Replace(" ", "?");
这可能会有所帮助。
请尝试以下操作:var qfix=@"''";