gpt4 book ai didi

.net - Lucene 索引多语言复杂实体

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

我有以下类(class):

public class Resource
{
public Guid? Id { get; set; }
public IList<LocalizedValue> LocalizedValues { get; set; }
}

public class LocalizedValue
{
public Guid? Id { get; set; }
public Resource Resource { get; set; }
public string Locale { get; set; }
public string TextValue { get; set; }
}

这用于在其他对象中存储多语言数据,像这样:

public class Job
{
public Resource Description { get; set; }

// some other properties...
}

所以我可以用多种语言存储描述。

我想在 Lucene.Net 中为 Job 对象(包括它的 Resource 属性)建立索引,以便能够以所有语言或特定语言搜索内容指定一个。

我查看了 SO 或其他地方的其他相关问题,但我不确定该怎么做。

我考虑过使用多个字段(Job 类中每个资源的每个 TextValue 对应一个字段),但是我如何才能确定文本使用的是哪种语言而不陷入相当复杂的查询中?

我想我将能够以一种或另一种方式进行管理,但我仍然会问,以防万一有人有我想念的好主意。

最佳答案

我会创建 N + 1 个字段,1 个用于每种语言,1 个用于放置所有内容。

doc.addField("EN", //english stuff);
doc.addField("NL", //dutch stuff);
doc.addField("all", //english stuff and dutch stuff);

在这种情况下,如果您要在特定语言中进行搜索,请使用该字段。如果要搜索所有语言,请使用 all

如果你想在搜索all字段时弄清楚它是哪种语言;你不能轻易做到这一点。您可以使用 N bool 查询 (all AND EN), (all AND NL).

或者更好的是,为所有语言字段创建facet。然后您可以在一个(快速)查询中检索每个语言字段的 facetscounts。得分最高的方面将是与搜索匹配的语言。

关于.net - Lucene 索引多语言复杂实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21330929/

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