在elasticsearch

时间:2017-06-16 12:57:40

标签: elasticsearch lucene

示例文件:

{"id": 1, "categories" : ["A", "C","E"]}
{"id": 2, "categories" : ["A", "C"]}
{"id": 3, "categories" : ["A"]}
{"id": 4, "categories" : ["A"]}

当有人搜索单个值时," A"在categories字段中,如何确保文档3和4总是比文档1和2更高,因为它们更接近单个值" A"?

我试过这个问题:

{
    "query": {
      "bool": {
        "filter": {
          "bool": {
            "must": [
              {
                "term": {
                  "categories": "A"
                }
              }
            ]
          }
        }
      }
    }
  }

但是文件3和4不在最佳状态。

1 个答案:

答案 0 :(得分:1)

当您尝试处理数组中的单元格时,无法控制相关性或tf/idf。 elasticsearch会将所有单元格及其内容视为一个串联字符串。