关于Elasticsearch的搜索查询
这篇文章的简要概述
希望您在阅读Elasticsearch参考文档时,能够总结出有关搜索查询的内容!如果对您理解查询有所帮助,我将感到非常幸运。
首先,我想谈谈当执行搜索查询时,Elasticsearch如何返回结果。
随后,我们将参考实际查询示例并进行解释。
Elasticsearch如何返回搜索结果?
总的来说,将根据搜索查询匹配度高的文件顺序返回。
这里将匹配度称为关联度分数。
默认情况下,Elasticsearch会根据相关性分数对匹配的搜索结果进行排序。
相关性分数用于衡量文档与查询的匹配程度。
关联分数会作为搜索API的_score返回。
分数越高,文档的关联性就越高。
关联性分数的计算方法因查询类型而异。
Elasticsearch的搜索查询
GET /search
{
"query": {
"bool": {
"must": [
{ "match": { "title" : "Elasticsearch" }},
{ "match": { "content" : "Search" }}
],
"filter": [
{ "term": { "status" : "published" }},
{ "range": { "publish_date" : { "gte" : "2015-01-01" }}}
]
}
}
}
在查询中,将以相关性评分(_score)的形式返回文档和查询的匹配程度指标。
必须句和应该句的得分会被组合在一起,返回较多匹配的查询得分较高。
布尔查询可以通过组合以下多种类型的查询。
クエリ説明must必ずドキュメントに一致しなければいけない。スコアに貢献する。filter一致しないドキュメントは除外される。スコアは無視する。should一致する場合、スコアに貢献する。must_not必ずドキュメントに含まれてはいけない。スコア無視する。
匹配查询将返回与指定文本、数字、日期或布尔值相匹配的文档。
它是用于执行全文搜索的标准查询,包括模糊匹配选项。
即使有搜索字符的拼写错误,它也会自动进行补全。
term查询会返回包含指定字段的确切术语的文档。
range查询会返回包含指定范围内的术语的文档。
如果您对此感兴趣,还可以参考其他许多参考资料,欢迎点击以下链接查看:
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-filter-context.html