对第1行的Lucene词法错误使用了错误的转义符,无法解析遇到的<EOF>。肯蒂科12

时间:2019-06-04 16:03:56

标签: lucene escaping kentico lexical kentico-12

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

我正在使用Kentico 12修补程序14及其Lucene.NET 3.0.3实现。我的智能搜索索引使用标准分析器,如下所示:

enter image description here

当我使用以下lucene语法拉回美国文化的结果时,我得到了预期的行。该语法由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修补程序?错误的过滤器顺序?感谢您的宝贵时间!

1 个答案:

答案 0 :(得分:1)

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

Escaped value in code

Escaped value in text visualizer