我正在创建照片库项目的搜索,其中照片最多可以有 50 个标签(就像在快门和 fotolia 中一样)。我正在 elasticsearch 中创建我的搜索。我在 elasticsearch 中有一个带有数据类型关键字的字段。当查询出现“抽象背景”时,我想在图像的所有关键字中搜索抽象和背景,并按相关性对它们进行排序。它不应该与抽象背景相匹配。我写了一个这样的查询
"query": {
"bool": {
"should": [
{
"match": {
"keyword": {
"query": "abstract, background"
}
}
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
它仅适用于匹配单个关键字。我想匹配多个关键字并按相关性对它们进行排序。谢谢
- - -编辑 - - -
这些是我的映射。标题字段工作正常。类别仅用于聚合,关键字是要匹配的主要字段。
PUT /freevects
{
"mappings": {
"photos": {
"properties": {
"title": {
"type": "text",
"boost": 1.9,
"analyzer": "standard"
},
"keyword": {
"type": "keyword",
"boost": 1.4
},
"category": {
"type": "keyword",
"index": false
},
"quality": {
"type": "short",
"index": false,
"boost": 1.1
},
"downloads": { …Run Code Online (Sandbox Code Playgroud)