elasticsearch ElasticSearch Nest 7.x自动建议编译错误
我正在尝试使用Nest 7.4和我从中找到的示例创建autosuggest查询 但我得到一个错误,项目和项目过滤器没有找到。 你能告诉我我遗漏了什么吗?我想Project可能引用了DTO对象,但这可能不是真的,因为如果我用DTO替换Project,我会出错
elasticsearch ElasticSearch Nest 7.x自动建议编译错误,
elasticsearch,asp.net-web-api,nest,
elasticsearch,Asp.net Web Api,Nest,我正在尝试使用Nest 7.4和我从中找到的示例创建autosuggest查询 但我得到一个错误,项目和项目过滤器没有找到。 你能告诉我我遗漏了什么吗?我想Project可能引用了DTO对象,但这可能不是真的,因为如果我用DTO替换Project,我会出错 void getSuggestions() { var settings = new ConnectionSettings(new Uri("http://localhost:9200"))
void getSuggestions()
{
var settings = new ConnectionSettings(new Uri("http://localhost:9200"))
.DefaultIndex(index);
var client = new ElasticClient(settings);
var results = client.Search<GenericSearchDto>(new SearchRequest<GenericSearchDto>
{
Query = ProjectFilter,
DocValueFields = Fields<GenericSearchDto>(f => f.Name),
Suggest = new SuggestContainer
{
{
"my-term-suggest", new SuggestBucket
{
Text = "hello world",
Term = new TermSuggester
{
MaxEdits = 1,
MaxInspections = 2,
MaxTermFrequency = 3,
MinDocFrequency = 4,
MinWordLength = 5,
PrefixLength = 6,
SuggestMode = SuggestMode.Always,
Analyzer = "standard",
Field = Field<GenericSearchDto>(p => p.Name),
ShardSize = 7,
Size = 8
}
}
},
{
"my-completion-suggest", new SuggestBucket
{
Prefix = Project.Instance.Name,
Completion = new CompletionSuggester
{
Contexts = new Dictionary<string, IList<ISuggestContextQuery>>
{
{
"color",
new List<ISuggestContextQuery>
{ new SuggestContextQuery { Context = Project.First.Suggest.Contexts.Values.SelectMany(v => v).First() } }
}
},
Fuzzy = new SuggestFuzziness
{
Fuzziness = Fuzziness.Auto,
MinLength = 1,
PrefixLength = 2,
Transpositions = true,
UnicodeAware = false
},
Analyzer = "simple",
Field = Field<GenericSearchDto>(p => p.Suggest),
Size = 8,
SkipDuplicates = true
}
}
},
{
"my-phrase-suggest", new SuggestBucket
{
Text = "hello world",
Phrase = new PhraseSuggester
{
Collate = new PhraseSuggestCollate
{
Query = new PhraseSuggestCollateQuery
{
Source = "{ \"match\": { \"{{field_name}}\": \"{{suggestion}}\" }}",
},
Params = new Dictionary<string, object>
{
{ "field_name", "name" }
},
Prune = true
},
Confidence = 10.1,
DirectGenerator = new List<DirectGenerator>
{
new DirectGenerator { Field = "description" }
},
GramSize = 1,
Field = "name",
RealWordErrorLikelihood = 0.5,
TokenLimit = 5,
ForceUnigrams = false
}
}
void getSuggestions()
{
var设置=新连接设置(新Uri(“http://localhost:9200"))
.DefaultIndex(索引);
var客户端=新的ElasticClient(设置);
var results=client.Search(新的SearchRequest
{
Query=ProjectFilter,
DocValueFields=字段(f=>f.Name),
建议=新建议容器
{
{
“我的建议”,新建议
{
Text=“你好,世界”,
术语=新术语建议者
{
MaxEdits=1,
MaxInspections=2,
MaxTermFrequency=3,
MinDocFrequency=4,
MinWordLength=5,
预桥长度=6,
SuggestMode=SuggestMode.始终,
Analyzer=“标准”,
字段=字段(p=>p.Name),
ShardSize=7,
尺寸=8
}
}
},
{
“我的完成建议”,新建议
{
前缀=Project.Instance.Name,
完成=新的CompletionSuggester
{
上下文=新词典
{
{
“颜色”,
新名单
{new SuggestContextQuery{Context=Project.First.Suggest.Contexts.Values.SelectMany(v=>v.First()}}
}
},
模糊性=新的暗示模糊性
{
模糊=模糊。自动,
MinLength=1,
预桥长度=2,
换位=真,
Unicode数据仓库=错误
},
Analyzer=“简单”,
字段=字段(p=>p.Suggest),
尺寸=8,
SkipDuplicates=true
}
}
},
{
“我的短语建议”,新的SuggestBucket
{
Text=“你好,世界”,
短语=新短语建议者
{
Collate=新短语suggestcollate
{
Query=新短语suggestcollatequery
{
Source=“{\'match\”:{\“{{field\u name}}\”:\“{{suggestion}}\”}”,
},
Params=新字典
{
{“字段名称”,“名称”}
},
Prune=true
},
置信度=10.1,
DirectGenerator=新列表
{
新建DirectGenerator{Field=“description”}
},
GramSize=1,
Field=“name”,
realWordError似然=0.5,
TokenLimit=5,
力图=假
}
}