改变StandardAnalyzer Lucene

时间:2016-02-23 14:23:41

标签: java lucene tokenize standardanalyzer

我正在尝试使用lucene 4.10.3的StandardAnalyzer按标题搜索文档。我从文件中读取了引号,并且我添加了双引号来构造查询:

Query query = parser.parse("\""+doc.get("title")+"\"");

问题在于,当它读取报价时,菲律宾说出了“比墨西哥更好”的报道“lucene返回此错误

Cannot parse '"PHILIPPINES SAYS DEBT PACT "BETTER THAN MEXICO'S"': Lexical error at line 1, column 52.  Encountered: <EOF> after : ""

我该如何解决?

谢谢!

1 个答案:

答案 0 :(得分:0)

问题是您要搜索的文本中的引号需要转义。您可以使用QueryParser.escape转义要搜索的文本:

Query query = parser.parse("\"" + QueryParser.escape(doc.get("title")) + "\"");