小编Muh*_*Ali的帖子

如何在elasticsearch中搜索标签

我正在创建照片库项目的搜索,其中照片最多可以有 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)

full-text-search elasticsearch elasticsearch-5

9
推荐指数
1
解决办法
1万
查看次数