java - Solr Webapp 正则表达式搜索

标签 java regex solr lucene

我正在关注 Solr quick start tutorial并启动并运行网络应用程序。我知道 Solr 有正则表达式搜索功能,但我很难让它工作。

enter image description here

所以在这里,我有一个名为 MFR 的字段,我想使用正则表达式来匹配 AVAGO 等值。但是,它给了我错误,例如无法正确解析它,然后我尝试转义某些字符,但以下所有操作均无效:

MFR:AV\[A\]GO
MFR:AV/[A/]GO
MFR:AV/[A/]GO
MFR:"AV\[A\]GO"
MFR:"AV/[A/]GO"
MFR:"AV[A]GO"

现在,我开始问自己 q 参数是否是我可以放置正则表达式的正确位置,否则我什至不知道。

我也played Eclipse 中的 TestRegexpQuery 运行单元测试,显然,该查询是一种不同类型的查询。如何让正则表达式在 GUI 中工作?

最佳答案

您的问题是如何在 query screen 上使用 RegExpQuery .

您已经在 lucene 中使用了 RegExpQuery。

作为默认 solr,使用 standard query parser 。标准查询解析器确实支持 RegexpQuery,但 RegExp 必须以斜杠字符 / 开头和结尾,如 MRF:/AV[A-X]GO/ > 或 MRF:/av[a-x]go/

请注意,正则表达式必须与倒排索引中的标记匹配,而不是与原始单词匹配。

例如对于 FieldType“text_general”,单词 AVAGO 将成为标记 avago,因此大写字母的 regExpr 将不匹配。

您可以使用 solr analysis screen 进行测试从单词(真实文本中)到索引中相应标记的方式。

另请参阅:How to use regex for querying in Solr 4

关于java - Solr Webapp 正则表达式搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35728083/

相关文章:

java - 使用 springs getHibernateTemplate,如何获取用户列表并限制结果集?

javascript - Jquery 在字符串中搜索单词

solr - Solr排序无法正常工作

javascript - 当响应仍在返回时,如何逐个对象读取大型 SOLR 响应

java - 如何从没有 id 的 html 中读取元素?

java - 在Java中使用非持久连接时是否应该调用HttpUrlConnection的disconnect()方法?

java - 如何使用 JavaFX 将复选框的值传递给另一个方法?

python - 通过正则表达式使用替代方法连接术语

Python 等效于 Perl 在 if block 中匹配和捕获

solr - DSE SolR 查询结果不一致结果集不一致