首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当查询包含正斜杠时,Lucene的Highlighter.getBestFragments方法返回空字符串

当查询包含正斜杠时,Lucene的Highlighter.getBestFragments方法返回空字符串
EN

Stack Overflow用户
提问于 2013-08-03 04:42:12
回答 1查看 808关注 0票数 0

我有一个应用程序,当输入像"fulltext:rajath AND filepath:rajath“这样的查询时,Highlighter.getBestFragments会正确地返回。然而,如果相同的查询在文件路径中包含"/“,这意味着如果查询类似于"fulltext:rajath AND filepath:rajath/rajath1",Highlighter.getBestFragments方法将返回一个空字符串。请告诉我如何解决这个问题。我非常怀疑这个问题是由于查询中的正斜杠造成的。有什么方法可以摆脱它吗?

目前,我在我的应用程序中使用lucene 2.9.3,但高亮显示不正确。但是查询"fulltext:rajath AND filepath: rajath /rajath1“用于在lucene 2.2.0中正确突出显示关键字rajath。在2.2.0和2.9.3中,当输入"fulltext:rajath and filepath:rajath/rajath1“时,内部查询更改为+fulltext:rajath +filepath:"rajath rajath1”

EN

回答 1

Stack Overflow用户

发布于 2013-08-03 06:02:46

在Lucene4.x中,正斜杠(/)现在是一个特殊的字符,用于表示正则表达式搜索。您将需要escape your slashes,如下所示:

代码语言:javascript
复制
String query = "filepath:rajath\\/rajath1";

或者你可以使用lucene do the escaping,就像这样:

代码语言:javascript
复制
String searchfor = "rajath/rajath1";
String escapedsearch = QueryParserBase.escape(searchfor);
String query = "filepath:" + escapedsearch;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18025790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档