elasticsearch 从查询字符串中提取匹配条件,elasticsearch,nest,elasticsearch,Nest" /> elasticsearch 从查询字符串中提取匹配条件,elasticsearch,nest,elasticsearch,Nest" />

elasticsearch 从查询字符串中提取匹配条件

elasticsearch 从查询字符串中提取匹配条件,elasticsearch,nest,elasticsearch,Nest,ElasticSearch查询是使用带有多个AND/OR运算符的查询字符串形成的。i、 e.((条件1或条件2)和(条件3或条件4或条件5)),根据其向我提供多份文件的条件。为了获得准确的条件,我再次循环遍历所有结果文档,并标记特定条件。是否有任何简单的方法可以获得特定于文档的结果条件 有谁能用NEST API提供更好的例子吗?我认为您需要的是突出显示在查询中成功的数据。elasticsearch的突出显示功能实际上会标记每个搜索结果中的文本,以便用户可以查看文档与查询匹配的原因。在响应中返回标

ElasticSearch查询是使用带有多个AND/OR运算符的查询字符串形成的。i、 e.((条件1或条件2)和(条件3或条件4或条件5)),根据其向我提供多份文件的条件。为了获得准确的条件,我再次循环遍历所有结果文档,并标记特定条件。是否有任何简单的方法可以获得特定于文档的结果条件


有谁能用NEST API提供更好的例子吗?

我认为您需要的是突出显示在查询中成功的数据。elasticsearch的突出显示功能实际上会标记每个搜索结果中的文本,以便用户可以查看文档与查询匹配的原因。在响应中返回标记的文本

请参阅中的,以了解此api的实际工作原理。请参阅中的,以了解如何使用嵌套库实现它

例如,使用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)
        )
    )
);
var result=\u client.Search(s=>s
.Query(q=>q
.MatchPhrase(qs=>qs
.OnField(e=>e.about)
.Query(“攀岩”)
)
)
.突出显示(h=>h
.OnFields(f=>f
.OnField(e=>e.about)
)
)
);
对于每个搜索结果,响应的格式如下(请注意突出显示部分)

“_分数”:0.23013961,
“_来源”:{
“名字”:“约翰”,
“姓氏”:“史密斯”,
“年龄”:25岁,
“关于”:“我喜欢去攀岩”,
“兴趣”:[“体育”、“音乐”]
},
“亮点”:{
“关于”:[
“我喜欢去攀岩”
]
}

我认为您需要的是突出显示在查询中成功的数据。elasticsearch的突出显示功能实际上会标记每个搜索结果中的文本,以便用户可以查看文档与查询匹配的原因。在响应中返回标记的文本

请参阅中的,以了解此api的实际工作原理。请参阅中的,以了解如何使用嵌套库实现它

例如,使用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)
        )
    )
);
var result=\u client.Search(s=>s
.Query(q=>q
.MatchPhrase(qs=>qs
.OnField(e=>e.about)
.Query(“攀岩”)
)
)
.突出显示(h=>h
.OnFields(f=>f
.OnField(e=>e.about)
)
)
);
对于每个搜索结果,响应的格式如下(请注意突出显示部分)

“_分数”:0.23013961,
“_来源”:{
“名字”:“约翰”,
“姓氏”:“史密斯”,
“年龄”:25岁,
“关于”:“我喜欢去攀岩”,
“兴趣”:[“体育”、“音乐”]
},
“亮点”:{
“关于”:[
“我喜欢去攀岩”
]
}

谢谢Manolis,你的评论非常有用。谢谢Manolis,你的评论非常有用。谢谢Manolis,你的评论非常有用。