我将我的数据库索引到lucene进行全文搜索。搜索没有符号的关键字时,一切正常,但每当我搜索有斜杠,小数等的关键字时(即1 / 4,1.234,1-1 / 4“),lucene都不会返回搜索结果。最好的方法是什么在索引符号中做什么?
答案 0 :(得分:3)
Lucene有几个应该被转义的角色:
需要转义的字符是:+ - ! (){} [] ^“〜*?:\
答案 1 :(得分:1)
我建议看看正则表达式。它应该允许您查看字符串是否包含该字符,它在何处,并允许您替换它。
答案 2 :(得分:1)
幸运的是,较新版本的Lucene已经有了一种方便的方法,可以在QueryParser中以静态方法escape(String s)的形式转义所述字符。
来自文档:
public static String escape(String s)
Returns a String where those characters that QueryParser expects to be escaped are escaped by a preceding \.