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