elasticsearch 在查询中使用布尔运算执行多重匹配ElasticSearch,elasticsearch,nest,elasticsearch,Nest" /> elasticsearch 在查询中使用布尔运算执行多重匹配ElasticSearch,elasticsearch,nest,elasticsearch,Nest" />

elasticsearch 在查询中使用布尔运算执行多重匹配ElasticSearch

elasticsearch 在查询中使用布尔运算执行多重匹配ElasticSearch,elasticsearch,nest,elasticsearch,Nest,我是否可以使用ElasticSearch和NEST执行多重匹配搜索,并在查询中传递带有布尔运算的查询?似乎我传递给multimatch的所有术语在默认情况下都与或链接(可以更改为其他运算符) 我希望ES计算查询中的布尔运算符,例如“A&&B | | C”和相同的搜索多个字段 是的,你可以 是的,你可以 可以设置以更改的语义。以NEST为例 void Main() { 变量池=新的SingleNodeConnectionPool(新Uri(“http://localhost:9200")); va

我是否可以使用ElasticSearch和NEST执行多重匹配搜索,并在查询中传递带有布尔运算的查询?似乎我传递给multimatch的所有术语在默认情况下都与或链接(可以更改为其他运算符)

我希望ES计算查询中的布尔运算符,例如“A&&B | | C”和相同的搜索多个字段

是的,你可以

是的,你可以

可以设置以更改的语义。以NEST为例

void Main()
{
变量池=新的SingleNodeConnectionPool(新Uri(“http://localhost:9200"));
var连接设置=新连接设置(池);
var客户端=新的ElasticClient(连接设置);
client.Search(s=>s
.Query(q=>q
.MultiMatch(m=>m
.Fields(f=>f
.Field(p=>p.FirstProperty)
.Field(p=>p.SecondProperty)
)
.Query(“这是查询”)
.操作员(操作员和)
)
)
);
}
公共类MyDocument
{
公共字符串FirstProperty{get;set;}
公共字符串SecondProperty{get;set;}
}
生成以下查询

{
  "query": {
    "multi_match": {
      "query": "this is the query",
      "operator": "and",
      "fields": [
        "firstProperty",
        "secondProperty"
      ]
    }
  }
}
还可以查看。

您可以设置来更改的语义。以NEST为例

void Main()
{
变量池=新的SingleNodeConnectionPool(新Uri(“http://localhost:9200"));
var连接设置=新连接设置(池);
var客户端=新的ElasticClient(连接设置);
client.Search(s=>s
.Query(q=>q
.MultiMatch(m=>m
.Fields(f=>f
.Field(p=>p.FirstProperty)
.Field(p=>p.SecondProperty)
)
.Query(“这是查询”)
.操作员(操作员和)
)
)
);
}
公共类MyDocument
{
公共字符串FirstProperty{get;set;}
公共字符串SecondProperty{get;set;}
}
生成以下查询

{
  "query": {
    "multi_match": {
      "query": "this is the query",
      "operator": "and",
      "fields": [
        "firstProperty",
        "secondProperty"
      ]
    }
  }
}
还可以看一看