【发布时间】:2016-04-13 05:08:05
【问题描述】:
我有一个基本的 cfsearch 可以正常工作,但有时它可能会被如下搜索字符串破坏;
我的搜索字符串]
"我的搜索字符串
我的搜索字符串[
我的搜索:字符串
以上任何一种都会导致类似的错误;
执行查询时出错:org.apache.lucene.queryParser.ParseException:无法解析“我的搜索字符串”:第 1 行第 32 列出现词法错误。遇到:之后:“\”我的搜索字符串”
我在想我可以去掉这些字符,但你可能有一个有效的搜索词,比如两个“” - 即。 “我的搜索字符串” - 这是有效的。有没有更好的方法来为 cfsearch 准备一个字符串?
因此,在以下示例中:
"我的搜索字符串
它会去掉第一个“。但如果搜索词是:
“我的搜索字符串”
一切都好-别管它。有任何想法吗?!是否还有其他可能导致错误的字符?例如,一个黑客尝试过这个;
XyOk,'.](.]]]'
导致错误的原因。
【问题讨论】:
-
在 Lucence 4+ 中这些都是特殊字符
+ - && || ! ( ) { } [ ] ^ " ~ * ? : \ /见 lucene.apache.org/core/4_0_0/queryparser/org/apache/lucene/… -
谢谢约翰,很高兴知道
标签: coldfusion lucene cfsearch