首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在忽略自定义标记的同时找到匹配项

在忽略自定义标记的同时找到匹配项
EN

Stack Overflow用户
提问于 2016-08-20 08:06:49
回答 1查看 30关注 0票数 0

我正在处理一个索引,其中有一个混合文档,其中一些可能包含自定义标记,如:

  • “一些长句<custom-tag attr="value" />,结束在这里”
  • “一些长句<custom-tag attr="value" />,在这里以<custom-tag-2 attr="value2" />结尾”
  • “另一个长句<another-custom-tag attr="value" />,在这里结束<another-custom-tag attr=value />

我应该找到与标签的名字和属性完全不可知的精确匹配。构建这样一个假设的查询,我首先想到的是正则表达式,例如:

  • “一些长句regex(<[^>]*>?,结束在这里”

将返回第一个文档,并且

  • “一些长句regex(<[^>]*>?,在这里以regex(<[^>]*>?结尾”

会返回第二份文件。

这是我可以用Lucene 3.x实现的吗?我甚至考虑迁移到Lucene4.8Beta,如果这是合理的话。

有人处理过类似的事情吗?有什么陷阱我应该考虑吗?

我想最简单的方法是存储相同的文本,但去掉第二个字段上的标记,然后对该字段执行搜索。如有任何意见或建议,我将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-16 13:48:24

您的最佳选择(在任何版本中)是创建一个TokenFilter,它将识别标记/regex并从令牌流中省略它们。

顺便说一句:我发现永远不要存储字段是“好的”(可能不包括“标识符”字段)。然后将对象序列化为二进制字段。这将“索引”与“数据”分开。在搜索速度和IO要求方面有一些好处。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39051933

复制
相关文章

相似问题

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