gpt4 book ai didi

java - 使用 solrj 和 schema.xml 将实体添加到 solr

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

我想向文档添加实体,就像使用数据配置一样。目前,我正在将文档的每一页作为单个文档进行索引。

现在:

<solrDoc>
<id>1</id>
<docname>test.pdf</docmname>
<pagenumber>1</pagenumber>
<pagecontent>blablabla</pagecontent>
</solrDoc>

<solrDoc>
<id>2</id>
<docname>test.pdf</docmname>
<pagenumber>2</pagenumber>
<pagecontent>blablabla</pagecontent>
</solrDoc>

正如您所看到的,与文档相关的数据被存储了 x 页次。我想要获得这样的文件:

<doc>
<id>1</id>
<docname>test.pdf</docmname>
<pageEntries> //multivaluefield
<pageEntry><pagenumber>1</pagenumber><pagecontent>blablabla</pagecontent></pageEntry>
<pageEntry><pagenumber>2</pagenumber><pagecontent>blablabla</pagecontent></pageEntry>
</pageEntries>
</doc>

我不知道如何制作类似 pageEntry 的东西。我看到 solr 可以从数据库导入实体,但我想知道如何做同样的事情?(或类似的东西)

我使用的是 solr 3.6.1。页面提取是我自己使用pdfbox完成的。

Java代码:

SolrInputDocument solrDoc = new SolrInputDocument();
solrDoc.setField("id", 1);
solrDoc.setField("filename", "test");
for (int p : pages) {
solrDoc.addField("page", p);
}
for (String pc : pagecont) {
solrDoc.addField("pagecont", pc);
}

最佳答案

如果提取是由您执行的,您可以合并所有页面并将其作为单个 Solr 文档提供,其中页码和页面内容是多值字段。

您可以对所有页面使用相同的 ID(该 ID 不是架构定义中的主字段),并使用分组 ( Field Collapsing ) 对文档的结果进行分组。

关于java - 使用 solrj 和 schema.xml 将实体添加到 solr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13375899/

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