在lucene中搜索符号的关键字

时间:2012-02-07 21:14:35

标签: java lucene

我将我的数据库索引到lucene进行全文搜索。搜索没有符号的关键字时,一切正常,但每当我搜索有斜杠,小数等的关键字时(即1 / 4,1.234,1-1 / 4“),lucene都不会返回搜索结果。最好的方法是什么在索引符号中做什么?

3 个答案:

答案 0 :(得分:3)

Lucene有几个应该被转义的角色:

  

需要转义的字符是:+ - ! (){} [] ^“〜*?:\

答案 1 :(得分:1)

我建议看看正则表达式。它应该允许您查看字符串是否包含该字符,它在何处,并允许您替换它。

JavaDocs on Regular Expressions Here

答案 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 \.