当前位置: 首页 > 知识库问答 >
问题:

如何在Lucene索引中存储自定义令牌属性

公孙黎昕
2023-03-14

我想为RDF节点创建一个Lucene分析器。RDF节点可以有多种类型(uri、bnode、plain literal、language的plain literal、datatype的typed literal)。在分析该术语时,我希望创建一个RDFNodeTypeAttribute、LanguageAttribute和DatatypeAttribute来分别存储RDF节点的类型、literal的语言和datatype属性。我的问题是如何将这些属性存储在lucene索引中。我必须写一个自定义编解码器吗?我必须使用PayloadAttribute吗?如何利用存储在索引中的这些属性进行搜索?谢谢你的帮助

共有1个答案

柯国安
2023-03-14

我不能确切地得到您的要求,但如果您对Lucene索引的编码和解码方式不满意,您可以使用编解码器。编解码器使您可以灵活地拥有自己的PostingsFormat,SegmentInfosFormat,LiveDocsFormat等。因此,假设您想要一个不同于默认Lucence编解码器的PostingsFormat--这更像是对于每个术语,以特定格式存储它出现的所有Docid,在一个doc中出现多少次,在什么位置等。如果您希望以不同的格式存储这些信息,则需要一个编解码器。

我不认为你需要为此写任何编解码器或任何PostingFormat。也许编写自己的分析器和相似度类就足够了。如果你给出更多关于你的问题的信息,我可以进一步思考。

有效负载是在术语级别,典型的用例是为每个术语存储元数据。因此,像这样的用例:这个术语是用粗体写的,或者是名词等等是这个术语的元数据,应该存储在有效负载中。你实际上使用有效载荷来给文档打分,它们在给一个术语一些权重方面很重要。

尽管RDF是web资源的元数据,但您可能正在讨论对RDF本身进行索引。即使它是web文档的一部分,您正在进行索引,将每个术语的RDF信息放在web文档中也不是一个可行的方法,因为有比这更好的方法来为文档分配权重。

 类似资料:
  • 我对Lucene是新来的。我试图有自定义属性的令牌。我能够获得分配给令牌的属性。然而,我意识到我们需要为我的每个属性大致有3个文件(接口类扩展属性,类扩展属性Impl和一个类扩展标记过滤器)? 我可能有大约50个属性需要分配。每个属性必须有3个文件吗?这大约是150个文件。

  • 我已经通过了lucene索引机制。我有一些疑问,我找不到一个直截了当的答案,我仍然对我在几篇参考文献中的阅读感到困惑。 考虑使用Lucene对数据库表进行索引。 假设该表有10列,其中很少有caseid、modifiedby、modifiedtime、casename、legalname等。。。 现在,如果我创建一个索引的情况下,那么在搜索是不是可以搜索的基础上修改字段??? 假设我在2列case

  • 我正在使用以下技术开发我的第一个NuxtJs应用程序。 对于后端API Laravel 7.3(Passport) NUXTV2。15.2 渲染模式:通用(SSR/SSG) NuxtAxios v5。13.1 NuxtAuth v5 我的登录API响应如下: nuxt.config.js 我ogin.vue 当我设置,auth_代币local被设置为完整的json对象,而不是“access_tok

  • 我有以下对象需要存储在Cassandra中。我需要使用UDT还是有其他方法来存储对象。我需要最终使用存储库方法从spry-boot应用程序存储它。

  • 在测试此文本时,我在要在文本中搜索的列上创建了lucene(3.0.1)索引: 如果我按关键字搜索,它会给出结果,但按 我正在使用standardAnalyzer: 因为已设置,它应创建令牌,并且应存在$GLD。Analyzer将从文本中删除停止字,因为word也将在该过程中删除。

  • 我正在用Django和angular构建一个应用程序。目前,我正在本地存储上存储后端发布的JWT。但是,我担心XSS攻击。我应该使用仅HTTP cookie存储令牌吗?我还考虑将令牌存储在auth服务类的变量字段中。但我不能完全确定angular是否在整个应用程序中共享该服务。我的身份验证服务是否只有一个实例?