在Nest中将Elastic Search完成提示与IBoolQuery结合

时间:2019-01-10 12:30:33

标签: c# nest elasticsearch-6

在调用完成建议器之前,我曾尝试根据某些排除条件过滤文档。

 var response = Client.Search<Suggestion>(s => s  
          .Query(q => q.Bool(MustNot(m => m.SpanTerm(st => st.Field("foo").Value("bar"))))     
          .Suggest(su => su
                .Completion("title", cs => cs
                    .Field(f => f.TitleSuggest)
                    .Prefix(searchText)                        .
                    )
                    .Size(10)
                )
            )

        );

但这似乎不起作用。返回相同的结果集。

1 个答案:

答案 0 :(得分:0)

进一步阅读后,使用标准布尔运算符似乎无法实现。上下文建议者是解决方案,但这不支持例如MustNot修饰符

https://www.elastic.co/guide/en/elasticsearch/reference/current/suggester-context.html