gpt4 book ai didi

Lucene queryparser 查询条件中包含 "/"

转载 作者:行者123 更新时间:2023-12-02 03:15:37 25 4
gpt4 key购买 nike

当我尝试在 Lucene 中搜索诸如“解决方法/修复”之类的内容时,它会抛出此错误:

org.apache.lucene.queryparser.classic.ParseException: Cannot parse 'workaround/fix': Lexical error at line 1, column 15.  Encountered: <EOF> after : "/fix"
at org.apache.lucene.queryparser.classic.QueryParserBase.parse(QueryParserBase.java:131)
at pi.lucengine.LucIndex.main(LucIndex.java:112)
Caused by: org.apache.lucene.queryparser.classic.TokenMgrError: Lexical error at line 1, column 15. Encountered: <EOF> after : "/fix"
at org.apache.lucene.queryparser.classic.QueryParserTokenManager.getNextToken(QueryParserTokenManager.java:1133)
at org.apache.lucene.queryparser.classic.QueryParser.jj_scan_token(QueryParser.java:599)
at org.apache.lucene.queryparser.classic.QueryParser.jj_3R_2(QueryParser.java:482)
at org.apache.lucene.queryparser.classic.QueryParser.jj_3_1(QueryParser.java:489)
at org.apache.lucene.queryparser.classic.QueryParser.jj_2_1(QueryParser.java:475)
at org.apache.lucene.queryparser.classic.QueryParser.Clause(QueryParser.java:226)
at org.apache.lucene.queryparser.classic.QueryParser.Query(QueryParser.java:181)
at org.apache.lucene.queryparser.classic.QueryParser.TopLevelQuery(QueryParser.java:170)
at org.apache.lucene.queryparser.classic.QueryParserBase.parse(QueryParserBase.java:121)

这是我的第 111 行和 112 行:

QueryParser parser = new QueryParser(Version.LUCENE_43, field, analyzer);
Query query = parser.parse(newLine);

我需要做什么才能让它解析“/”?

最佳答案

查询解析器将斜杠解释为开头/结尾或正则表达式查询(从 4.0 开始,请参阅 documentation here )。

因此,要将斜杠合并到查询中,您需要 escape them在它们之前添加一个反斜杠 (\)。

您可以使用QueryParser.escape(String)来处理转义.

关于Lucene queryparser 查询条件中包含 "/",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17798300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com