我正在尝试使用C#使用Nest进行匹配查询。匹配查询不会返回任何结果,因为生成的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
有关正在发生的事情或如何解决此问题的任何想法。
答案 0 :(得分:0)
在NEST查询中
customerName
作为字段名称,从成员表达式f => f.customerName
推断,而Kibana使用customername
(小写n
)如果您修改NEST查询以匹配Kibana查询,您将获得您期望的结果。