Elasticsearch Nest field boost + fuzzy
Elasticsearch Nest field boost + fuzzy
我正在尝试 set-up 具有 .NET 连接可用性的 Elasticsearch 环境。我能够使用自定义的模糊距离进行基本查询,但我无法做的是在查询时进行字段提升。
我已经尝试了几个 tutorials/questions,例如 Elasticsearch Nest Boost query or Elastic Search using NEST Field Boosting,但 NEST 无法识别“.OnFieldsWithBoost”或“.OnFields”。
我能够通过弹性搜索的 HTTP API 进行一些字段提升:
POST /products/typeproduct/_search
{
"query" : {
"bool": {
"should": [
{
"match": {
"Title": {
"query": "sometest",
"boost": 10.0
}
}
},
{
"match": {
"Name": "sometest"
}
}
]
}
}
}
但我还是无法通过 NEST 语法匹配此查询,因为它不允许 "should".
中有多个 "match"es
我的最终目标是能够将某些字段(标题)提升到其他字段(名称)之上,并在匹配中添加一些模糊性。
任何帮助将不胜感激。
我的弹性搜索版本:2.2.0
我的 NEST 版本:2.0.2
这是流畅的查询:
var response = client.Search<Document>(search => search
.Query(q => q.Bool(b => b
.Should(
s => s.Match(m => m.Query("sometest").Field(f => f.Title).Boost(1.1)),
s => s.Match(m => m.Query("sometest").Field(f => f.Name).Fuzziness(Fuzziness.EditDistance(1)))
))));
它生成以下对 elasticsearch 的查询:
{
"query": {
"bool": {
"should": [
{
"match": {
"title": {
"boost": 1.1,
"query": "sometest"
}
}
},
{
"match": {
"name": {
"query": "sometest",
"fuzziness": 1
}
}
}
]
}
}
}
希望这就是您要找的:)
我正在尝试 set-up 具有 .NET 连接可用性的 Elasticsearch 环境。我能够使用自定义的模糊距离进行基本查询,但我无法做的是在查询时进行字段提升。 我已经尝试了几个 tutorials/questions,例如 Elasticsearch Nest Boost query or Elastic Search using NEST Field Boosting,但 NEST 无法识别“.OnFieldsWithBoost”或“.OnFields”。
我能够通过弹性搜索的 HTTP API 进行一些字段提升:
POST /products/typeproduct/_search
{
"query" : {
"bool": {
"should": [
{
"match": {
"Title": {
"query": "sometest",
"boost": 10.0
}
}
},
{
"match": {
"Name": "sometest"
}
}
]
}
}
}
但我还是无法通过 NEST 语法匹配此查询,因为它不允许 "should".
中有多个 "match"es我的最终目标是能够将某些字段(标题)提升到其他字段(名称)之上,并在匹配中添加一些模糊性。 任何帮助将不胜感激。
我的弹性搜索版本:2.2.0 我的 NEST 版本:2.0.2
这是流畅的查询:
var response = client.Search<Document>(search => search
.Query(q => q.Bool(b => b
.Should(
s => s.Match(m => m.Query("sometest").Field(f => f.Title).Boost(1.1)),
s => s.Match(m => m.Query("sometest").Field(f => f.Name).Fuzziness(Fuzziness.EditDistance(1)))
))));
它生成以下对 elasticsearch 的查询:
{
"query": {
"bool": {
"should": [
{
"match": {
"title": {
"boost": 1.1,
"query": "sometest"
}
}
},
{
"match": {
"name": {
"query": "sometest",
"fuzziness": 1
}
}
}
]
}
}
}
希望这就是您要找的:)