SpringCloud系列[分布式搜索引擎篇] - DSL 查询及相关性算分的学习 (部分)
在Elasticsearch中,DSL(Domain Specific Language)查询是用来定义搜索条件的一种语言。以下是一个简单的DSL查询示例,它使用Elasticsearch的match
查询来搜索文档中的内容,并使用function_score
查询来调整文档的相关性得分。
{
"query": {
"function_score": {
"query": {
"match": {
"content": "example search query"
}
},
"functions": [
{
"filter": {
"match": {
"category": "technology"
}
},
"weight": 2
}
],
"boost_mode": "multiply"
}
}
}
在这个查询中,我们首先定义了一个match
查询来搜索文档的content
字段中包含"example search query"的内容。然后,我们使用function_score
查询来增加与特定条件相匹配的文档的相关性得分。在functions
数组中,我们定义了一个过滤器与加权函数,它会给属于"technology"类别的文档的相关性得分乘以2。boost_mode
设置为"multiply",这意味着最终得分是基于查询匹配得分和加权函数得分的乘积。
评论已关闭