1

我有一个与以下问题类似的问题:Lucene error while parsing Query: Cannot parse '': Encountered "" at line 1, column 0,我已经尝试了所有转义。还能是什么?

我正在使用 Kentico 12 修补程序 14,以及他们的 Lucene.NET 3.0.3 实现。我的智能搜索索引使用标准分析器,见下文:

在此处输入图像描述

当我使用以下 lucene 语法拉回 en-US 区域性结果时,我得到了预期的行。此语法由 Kentico 自动创建,是检索正确区域性所必需的。这是直接从属性值复制而来的。

"+_culture:([en-us TO en-us] [invariantifieldivaluei TO invariantifieldivaluei])"

当我添加(或单独使用)以下值时(以许多不同的形式 - 不带括号等):

 "+length:(24\")"

我总是得到词汇错误:

"Cannot parse '+_culture:([en-us TO en-us] [invariantifieldivaluei TO invariantifieldivaluei])  +length:(24\")': Lexical error at line 1, column 95.  Encountered: <EOF> after : \"\\\")\""

如您所见,我相信我已经正确地转义了长度值。我在这里想念什么?

其他不需要转义的值就可以了,例如:

+material:(nitrile)

关于我在 24" 值上做错了什么有什么想法吗?错误的分析仪?需要 Kentico 修补程序?过滤器的错误顺序?感谢您的宝贵时间!

4

1 回答 1

1

似乎我不是第一个在 Kentico 中处理这个问题的人,并找到了以下帮助方法: CMS.Search.SearchSyntaxHelper.EscapeKeyWords(string)。我将此方法应用于我的特定搜索过滤器值,它按预期工作!父类中也有很多好的方法,请查看它们。

代码中的转义值

文本可视化器中的转义值

于 2019-06-11T14:00:38.560 回答