更改 StandardAnalyzer Lucene
Change StandardAnalyzer Lucene
我正在尝试使用 lucene 4.10.3 的 StandardAnalyzer 按标题搜索文档。我从文件中读取引号,然后添加双引号来构造查询:
Query query = parser.parse("\""+doc.get("title")+"\"");
问题是,当它读到引文菲律宾说债务协定“比墨西哥的卢塞恩更好returns这个错误
Cannot parse '"PHILIPPINES SAYS DEBT PACT "BETTER THAN MEXICO'S"': Lexical error at line 1, column 52. Encountered: <EOF> after : ""
我该如何解决?
谢谢!
问题是您要搜索的文本中的引号需要转义。您可以使用 QueryParser.escape
:
转义要搜索的文本
Query query = parser.parse("\"" + QueryParser.escape(doc.get("title")) + "\"");
我正在尝试使用 lucene 4.10.3 的 StandardAnalyzer 按标题搜索文档。我从文件中读取引号,然后添加双引号来构造查询:
Query query = parser.parse("\""+doc.get("title")+"\"");
问题是,当它读到引文菲律宾说债务协定“比墨西哥的卢塞恩更好returns这个错误
Cannot parse '"PHILIPPINES SAYS DEBT PACT "BETTER THAN MEXICO'S"': Lexical error at line 1, column 52. Encountered: <EOF> after : ""
我该如何解决?
谢谢!
问题是您要搜索的文本中的引号需要转义。您可以使用 QueryParser.escape
:
Query query = parser.parse("\"" + QueryParser.escape(doc.get("title")) + "\"");