【发布时间】:2017-05-26 11:15:17
【问题描述】:
我正在尝试在我的 Windows 桌面应用程序中实现像谷歌这样的“你是说”功能。
我创建了一个 POC,它在我的索引中插入“名称”和“描述”,比如“MyIndex”
我可以进行全文搜索,但无法进行“您的意思是”之类的操作。
这是我在 NEST 文档中找到的代码片段,但我无法理解:
s => s
.Suggest(ss => ss
.Term("my-term-suggest", t => t
.MaxEdits(1)
.MaxInspections(2)
.MaxTermFrequency(3)
.MinDocFrequency(4)
.MinWordLength(5)
.PrefixLength(6)
.SuggestMode(SuggestMode.Always)
.Analyzer("standard")
.Field(p => p.Name)
.ShardSize(7)
.Size(8)
.Text("hello world")
)
.Completion("my-completion-suggest", c => c
.Contexts(ctxs => ctxs
.Context("color",
ctx => ctx.Context(Project.First.Suggest.Contexts.Values.SelectMany(v => v).First())
)
)
.Fuzzy(f => f
.Fuzziness(Fuzziness.Auto)
.MinLength(1)
.PrefixLength(2)
.Transpositions()
.UnicodeAware(false)
)
.Analyzer("simple")
.Field(p => p.Suggest)
.Size(8)
.Prefix(Project.Instance.Name)
)
.Phrase("my-phrase-suggest", ph => ph
.Collate(c => c
.Query(q => q
.Inline("{ \"match\": { \"{{field_name}}\": \"{{suggestion}}\" }}")
.Params(p => p.Add("field_name", "title"))
)
.Prune()
)
.Confidence(10.1)
.DirectGenerator(d => d
.Field(p => p.Description)
)
.GramSize(1)
.Field(p => p.Name)
.Text("hello world")
.RealWordErrorLikelihood(0.5)
)
)
什么是颜色,在这里做什么?
还有这是什么“ctx => ctx.Context(Project.First.Suggest.Contexts.Values.SelectMany(v => v).First()”
还有这个“.Prefix(Project.Instance.Name)”。
我在正确的道路上吗? 请帮忙。
【问题讨论】:
标签: c# .net linq elasticsearch nest