新的NEST DLL版本NEST.1.1.2中缺少BaseQuery类

Jos*_*a I 0 c# elasticsearch nest

在新版本中替换BaseQuery类是什么.我无处可寻.

我的问题是如何在c#中为搜索条件生成语法:

public class TextSearch
{
   public string Headline {get;set;}
   public string Summary {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

我需要使用文本"你"进行搜索,将两列作为OR运算符,第1列摘要和第2列标题进行搜索.

我早些时候在做,

                var orQuery = new List<BaseQuery>();

                if (!string.IsNullOrEmpty(searchtext))
                {
                    orQuery .Add(Query<TextSearch>.Terms("headline", searchOptions.text.ToLower().Split(' ')));
                    orQuery .Add(Query<TextSearch>.Terms("summary", searchOptions.text.ToLower().Split(' ')));
                }
           var finalQuery = new List<BaseQuery>();

            finalQuery .Add(Query<TextSearch>.Bool(o => o.Should(orQuery.ToArray())));
Run Code Online (Sandbox Code Playgroud)

现在这不起作用.在新版本中搜索是否有更好的语法.搜索条件应使用带有OR的LIKE,例如,总结LIKE'%you%'或headling LIKE'%you%'

Mar*_*man 5

有关NEST 1.0中重大变化的文档非常完整:

http://nest.azurewebsites.net/breaking-changes.html

我们改名BaseQueryQueryContainer

查询可以是:

client.Search<TextSearch>(s=>s
    .Query(q=>
       q.Terms("headline", words)
       || q.Terms("summary", words)
    )
)
Run Code Online (Sandbox Code Playgroud)

如果words为空或该部分未呈现为null,请参阅conditionless query此处的部分:

http://nest.azurewebsites.net/nest/writing-queries.html