gpt4 book ai didi

c# - Solr - 为单个唯一 ID 存储多个 Word 文档

转载 作者:行者123 更新时间:2023-11-30 22:26:17 28 4
gpt4 key购买 nike

我们想在 Solr 中索引和存储一组 Word 文档,并将它们显示为多值文本字段的元素,每个文档的内容显示为索引中该条目下的一个元素。换句话说,它看起来像这样

  • 身份证
    • abcdef [Word_1.docx 的文本]
    • xyzabc [Word_2.docx 的文本]
    • efghij [Word_3.docx 的文本]

我们不希望每个被索引的文档都有自己唯一的 ID;一组文档将是特定 ID 的子文档。该 ID 可以有任意数量的文档。如何做到这一点?

更新:这是我的 C# 代码;对于使用 (++count).ToString() 设置的唯一 ID,我如何将多个文档读入其中?

using (FileStream fileStream = File.OpenRead(path))
{

solr.Extract(
new ExtractParameters(fileStream, (++_count).ToString())
{
ExtractFormat = ExtractFormat.Text,
ExtractOnly = false,
Fields = new List<ExtractField>()
{
new ExtractField("action", actionTo),
new ExtractField("actiondate", actionDate),
new ExtractField("abstract", abstract),
new ExtractField("docval", docval),
new ExtractField("documentgeo",documentgeo),
new ExtractField("filename", filename),
new ExtractField("isprimary", IsPrimary.ToString())
},
AutoCommit = true
}
);
}

最佳答案

在您的 SOLR 架构中定义两个字段 - idtexttext 应该是多值的。然后在您的 SolrInputDocument 中聚合 id 和索引的文本数据。

<field name="id" type="int" multiValued="false" stored="true" indexed="true" />
<field name="text" type="text" multiValued="true" stored="true" indexed="true" />

我不知道 c# API,但是使用 SolrJ 可以很容易地使用 SolrInputDocument.addField("fieldname", "value") 进行聚合。

示例更新

SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", 1)
for (String docText : documents){
doc.addField("text", docText)
}

示例 .NET 更新

我将按以下方式定义我的类:

public class Document{
[SolrUniqueKey("id")]
public integer Id { get; set; }

[SolrField("text")]
public ICollection<string> texts { get; set; }

然后我将填充它并提交类似这样的伪.NET 代码:

Document doc = new Document();
for (String documentPath : paths) {
using (FileStream fileStream = File.OpenRead(path)) {
string id = fileStream.getId();
if (doc.getId() == id){
doc.getTexts.add(fileStream.getText())
}
}
}
var solr = ServiceLocator.Current.GetInstance<ISolrOperations<Document>>();
solr.Add(doc);
solr.Commit();

关于c# - Solr - 为单个唯一 ID 存储多个 Word 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11950976/

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