[英]How to write LINQ expression for Elastic search match and fuzzy query(NEST)
[英]Elastic Search with Nest match query not working
我正在尝试使用C#使用Nest进行匹配查询。 Match查询不会返回任何结果,因为生成的JSON的语法似乎已经消失,我确定有文档包含此关键字。 这是C#代码段
var response = conn.Search<DelOrder>(x => x
.From(0)
.Size(1000)
.Query(q => q
.Match
(m => m
.Field(f => f.customerName).Query(searchValue)
.Analyzer("standard")))
这将产生以下查询:
{
"from": 0,
"size": 1000,
"query": {
"match": {
"customerName": {
"**query**": "star",
"analyzer": "standard"
}
}
}
}
此查询返回0个结果,但是当我在Kibana控制台中调整相同的查询时,获取_search
{
"from":0,
"size":1000,
"query":
{
"match":
{
"customername":"star"
}
我得到搜索词的结果。 请注意,Kibana查询的语法中缺少“第二查询令牌”。
我确实检查了文档,看来我的语法是正确的https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/match-usage.html
关于正在发生的事情或如何解决此问题的任何想法。
在NEST查询中
customerName
作为字段名称,从成员表达式f => f.customerName
推断出,而Kibana使用customername
(小写n
) 如果修改NEST查询以使其与Kibana查询匹配,则将获得期望的结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.