gpt4 book ai didi

c# - Linq to Lucene 错误 : "Classes must define at least one field as a default search field"

转载 作者:行者123 更新时间:2023-11-30 16:35:39 25 4
gpt4 key购买 nike

我将以下属性应用于我的 linq to sql 类:

[Document(MetadataType = typeof(SomeObjectMetadata))]
public partial class SomeObject
{
}

这是元数据代码:

public class SomeObjectMetadata
{

[Field(FieldIndex.Tokenized, FieldStore.Yes, IsKey = true)]
private object ProductId { get; set; }

[Field(FieldIndex.Tokenized, FieldStore.Yes, IsDefault = true)]
private object Name { get; set; }

[Field(FieldIndex.Tokenized, FieldStore.Yes)]
private object Description { get; set; }

[Field(FieldIndex.Tokenized, FieldStore.Yes)]
private object Breadcrumb { get; set; }

[Field(FieldIndex.Tokenized, FieldStore.Yes)]
private object Tab1Content { get; set; }

[Field(FieldIndex.Tokenized, FieldStore.Yes)]
private object Tab2Content { get; set; }

[Field(FieldIndex.Tokenized, FieldStore.Yes)]
private object Tab3Content { get; set; }

[Field(FieldIndex.Tokenized, FieldStore.Yes)]
private object Tab4Content { get; set; }

[Field(FieldIndex.Tokenized, FieldStore.Yes)]
private object Tab5Content { get; set; }

[Field(FieldIndex.Tokenized, FieldStore.Yes)]
private object Manufacturer { get; set; }

}

索引存储写得很好,但是当我尝试搜索它时,出现标题中显示的错误。这是一个示例搜索:

        var qry = from r in _dbi.Get<SomeObject>()
where r.Description.Like(search)
select r;

枚举“qry”时,抛出异常“类必须至少将一个字段定义为默认搜索字段”。

最佳答案

哇,我是个白痴。元数据字段是私有(private)的。当然,这可以解决问题:

public class Catalog_ProductMetadata
{

[Field(FieldIndex.Tokenized, FieldStore.Yes, IsKey = true)]
public object ProductId { get; set; }

[Field(FieldIndex.Tokenized, FieldStore.Yes, IsDefault = true)]
public object Name { get; set; }

[Field(FieldIndex.Tokenized, FieldStore.Yes)]
public object Description { get; set; }

[Field(FieldIndex.Tokenized, FieldStore.Yes)]
public object Breadcrumb { get; set; }

[Field(FieldIndex.Tokenized, FieldStore.Yes)]
public object Tab1Content { get; set; }

[Field(FieldIndex.Tokenized, FieldStore.Yes)]
public object Tab2Content { get; set; }

[Field(FieldIndex.Tokenized, FieldStore.Yes)]
public object Tab3Content { get; set; }

[Field(FieldIndex.Tokenized, FieldStore.Yes)]
public object Tab4Content { get; set; }

[Field(FieldIndex.Tokenized, FieldStore.Yes)]
public object Tab5Content { get; set; }

[Field(FieldIndex.Tokenized, FieldStore.Yes)]
public object Manufacturer { get; set; }

}

关于c# - Linq to Lucene 错误 : "Classes must define at least one field as a default search field",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1631823/

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