弹性得到相关结果

时间:2016-06-20 15:10:44

标签: elasticsearch

我的查询搜索标题描述作者 ean isbn

我对 title ^ 3 作者^ 2 ean ^ 100 isbn ^ 100 有所提升

当我被ean击中时,它只返回1个结果。 (ean是一个数字)

ISBN是一个字符串,例如。 978-12-1234-123-8 我获得了数千个ISBN的结果。但如果有击中,那么其他人的结果会略高一些。

我使用 multi_match ,类型为 best_fields

有没有办法只获得相关结果?或者我必须自己做?

编辑:

映射:

"product": {
"properties": {
  "img": {
    "type": "string"
  },
  "dobrovsky_rating": {
    "type": "float"
  },
  "isbn": {
    "type": "string"
  },
  "saleType": {
    "type": "string"
  },
  "rating": {
    "type": "float"
  },
  "description": {
    "analyzer": "hunspell_cs",
    "type": "string"
  },
  "availability": {
    "type": "string"
  },
  "priceDph": {
    "type": "long"
  },
  "title": {
    "analyzer": "hunspell_cs",
    "type": "string"
  },
  "url": {
    "index": "not_analyzed",
    "type": "string"
  },
  "rating_count": {
    "type": "long"
  },
  "ean": {
    "type": "string"
  },
  "serie": {
    "analyzer": "hunspell_cs",
    "type": "string"
  },
  "id": {
    "type": "long"
  },
  "category": {
    "analyzer": "hunspell_cs",
    "type": "string"
  },
  "authors": {
    "analyzer": "hunspell_cs",
    "type": "string"
  }
}

数据示例:

Id: 123
Title: Game of Thrones
Author: George R.R. Martin
Img: www.aaa.cz/got.png
Url: www.aaa.cz/got.html
Description: Game of Thrones is a ...
EAN: 9788071974925
ISBN: 978-80-7197-492-5
...

1 个答案:

答案 0 :(得分:1)

试试这个

POST /MyINdex/_search
{
  "from": 0,
  "size": 10,
  "_source": {
    "include": [
      "*"
    ]
  },
  "query": {
    "query_string": {
      "query": "978-12-1234-123-8",
      "fields": [
        "title^3",
        "author2^2",
        "ean^100",
        "isbn^100",
        "description^1"
      ],
      "default_operator": "and"
    }
  }
}