从querystring中提取匹配条件
Extracting matching conditions from querystring
ElasticSearch 查询是使用具有多个 AND / OR 运算符的查询字符串形成的。即((条件 1 或条件 2)和(条件 3 或条件 4 或条件 5)),根据它为我提供多个文件的条件。为了获得准确的条件,我再次循环遍历所有生成的文档并标记特定条件。是否有任何简单的方法来获取特定于文档的结果条件?
谁能提供使用 NEST 的更好示例 API?
我认为您需要的是突出显示对您的查询产生影响的数据。 elasticsearch 的高亮功能实际上标记了每个搜索结果中的文本,因此用户可以看到文档与查询匹配的原因。响应中返回标记的文本。
请参阅 elasticsearch documentation in order to understand how this api actually works. Refer in the Nest Documentation 以了解如何使用 Nest 库实现它。
例如,使用 elasticsearch api 想象下面的例子:
GET /someIndex/someType/_search
{
"query" : {
"match_phrase" : {
"about" : "rock climbing"
}
},
"highlight": {
"fields" : {
"about" : {}
}
}
}
与 Nest 相同:
var result = _client.Search<someIndex>(s => s
.Query(q => q
.MatchPhrase(qs => qs
.OnField(e => e.about)
.Query("rock climbing")
)
)
.Highlight(h => h
.OnFields(f => f
.OnField(e => e.about)
)
)
);
每个搜索结果的响应将采用以下形式(注意突出显示部分)
"_score": 0.23013961,
"_source": {
"first_name": "John",
"last_name": "Smith",
"age": 25,
"about": "I love to go rock climbing",
"interests": [ "sports", "music" ]
},
"highlight": {
"about": [
"I love to go <em>rock</em> <em>climbing</em>"
]
}
ElasticSearch 查询是使用具有多个 AND / OR 运算符的查询字符串形成的。即((条件 1 或条件 2)和(条件 3 或条件 4 或条件 5)),根据它为我提供多个文件的条件。为了获得准确的条件,我再次循环遍历所有生成的文档并标记特定条件。是否有任何简单的方法来获取特定于文档的结果条件?
谁能提供使用 NEST 的更好示例 API?
我认为您需要的是突出显示对您的查询产生影响的数据。 elasticsearch 的高亮功能实际上标记了每个搜索结果中的文本,因此用户可以看到文档与查询匹配的原因。响应中返回标记的文本。
请参阅 elasticsearch documentation in order to understand how this api actually works. Refer in the Nest Documentation 以了解如何使用 Nest 库实现它。
例如,使用 elasticsearch api 想象下面的例子:
GET /someIndex/someType/_search
{
"query" : {
"match_phrase" : {
"about" : "rock climbing"
}
},
"highlight": {
"fields" : {
"about" : {}
}
}
}
与 Nest 相同:
var result = _client.Search<someIndex>(s => s
.Query(q => q
.MatchPhrase(qs => qs
.OnField(e => e.about)
.Query("rock climbing")
)
)
.Highlight(h => h
.OnFields(f => f
.OnField(e => e.about)
)
)
);
每个搜索结果的响应将采用以下形式(注意突出显示部分)
"_score": 0.23013961,
"_source": {
"first_name": "John",
"last_name": "Smith",
"age": 25,
"about": "I love to go rock climbing",
"interests": [ "sports", "music" ]
},
"highlight": {
"about": [
"I love to go <em>rock</em> <em>climbing</em>"
]
}