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%'
有关NEST 1.0中重大变化的文档非常完整:
http://nest.azurewebsites.net/breaking-changes.html
我们改名BaseQuery为QueryContainer
查询可以是:
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