Elasticsearch:按匹配文档的数量排序

时间:2015-07-30 08:42:12

标签: json indexing elasticsearch autocomplete tags

我正在使用Elasticsearch实现标签自动完成器。 我的标签存储在索引文档中的各种String数组中:

 {
...
"SKILLS": {
  "INDUSTRIES_SOLUTIONS": [
    "project-management"
  ],
  "SKILLS_COMPETENCIES": [
    "javascript"
  ],
  "HIGHLIGHTED": [],
  "tag_suggest": {
    "input": [
      "javascript",
      "hibernate",
      "project-management"
    ]
  },
  "JOB_ROLES": [
    "hibernate"
  ]
}
}

正如您所看到的,我将它们包含在tag_suggest对象中并以一种方式映射它,以便能够使用这种查询查询_suggest api:

{
"tag_suggest":{
    "text":"jav",
    "completion": {
        "field" : "SKILLS.tag_suggest",
        "fuzzy" : {
            "fuzziness" : 1
        }
    }
}
}

正确返回:

    {
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "tag_suggest": [
    {
      "text": "jav",
      "offset": 0,
      "length": 3,
      "options": [
        {
          "text": "java",
          "score": 1
        },
        {
          "text": "javascript",
          "score": 1
        }
      ]
    }
  ]
}

我想要做的是能够根据匹配文档的数量对结果进行排序。 例如,如果“java”标记包含在1个文档中并且javascript包含在10个文档中,我希望后者作为第一个建议结果出现。一个很好的将是匹配文档的数量,类似Stackoverflow。 我该如何实现此功能?完成正确的方法去?谢谢。

0 个答案:

没有答案