处理Lucene查询解析器错误

时间:2009-03-02 10:51:43

标签: lucene.net

我的应用程序接受用户输入的字符串并尝试使用Lucene查询解析器解析它。但是我注意到有几种格式的字符串会在这个查询解析器中引发错误 e.g:

  • 〜anystring
  • anystring +

首先,我尝试模拟用户输入的字符串,以便它不能包含这些情况,但正如我所看到的,可能会有更多我不能预见的情况。

如何处理查询解析器异常?你怎么阻止他们?

2 个答案:

答案 0 :(得分:2)

我们捕获剩余的解析异常并显示错误消息(“您的搜索与任何文档都不匹配。建议:尝试不同的关键字。”)。

另见How to make the Lucene QueryParser more forgiving?

答案 1 :(得分:0)

query.replace(/([\!\*\+\&\|\(\)\[\]\{\}\^\~\?\:\"\/])/g, "");