ElasticSearch高级query_string查询

亚历山大·姆切利什维利

我需要的是,Elastic应该在多个字段中搜索并按字段优先级返回数据。

例如:对于搜索字符串obil hon,elastic应该首先在field [title,description,modelCaption]中搜索,并在其首先Mobile PhoneTitlefield中找到数据,然后在其他字段中返回数据

我使用的查询:

{
  "from": 0,
  "query": {
    "bool": {
      "must": [
        {
          "query_string": {
            "default_operator": "or",
            "fields": [
              "title^5",
              "description",
              "modelCaption",
              "productFeatureValues.featureValue",
              "productFeatureValues.featureCaption"
            ],
            "query": "*obil* *hone*"
          }
        }
      ]
    }
  },
  "size": 16
}

有什么建议?

谢谢!

Elasticsearch忍者

您可以简单地使用多重匹配查询来查询多个字段,它支持对特定字段(如title您的情况)和不同运算符(如OR您的情况)进行提升

用于您的用例的示例ES查询:

{
  "query": {
    "multi_match" : {
      "query" : "mobile phones",
      "fields" : [ "title^5", "description","modelCaption","productFeatureValues.featureVal"],
      "fuzziness" : "AUTO" --> Adding fuzziness to query
    }
  }
}

此处提交的标题会增加5倍,因此,如果手机在标题字段中匹配,则得分会更高。

另外请注意,您在查询字符串中使用通配符非常昂贵,因此,如果可以的话,最好避免使用通配符。

编辑:基于OP注释,在查询中包括模糊参数AUTO以获得更好的结果

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ElasticSearch术语查询与query_string?

来自分类Dev

Elasticsearch query_string嵌套查询

来自分类Dev

Elasticsearch query_string命中字段

来自分类Dev

elasticsearch query_string处理特殊字符

来自分类Dev

Elasticsearch query_string多值字段

来自分类Dev

使用通配符的Elasticsearch query_string搜索

来自分类Dev

Elasticsearch-在过滤器中组合query_string和bool查询

来自分类Dev

ElasticSearch has_child查询不支持query_string

来自分类Dev

带有query_string和range的Elasticsearch

来自分类Dev

elasticsearch中的query_string vs group match

来自分类Dev

如何在ElasticSearch中使query_string搜索精确短语

来自分类Dev

当使用query_string时Elasticsearch提升字段

来自分类Dev

在Elasticsearch中使用对特定ID的query_string进行搜索

来自分类Dev

弹性搜索查询因query_string中的冒号而崩溃

来自分类Dev

弹性搜索query_string包含未查询的术语

来自分类Dev

弹性搜索query_string包含未查询的术语

来自分类Dev

如何结合 query_string 和 terms 查询?

来自分类Dev

弹性搜索中包含query_string的简单查询与bool查询之间的区别

来自分类Dev

含参数的QUERY_STRING

来自分类Dev

query_string 的空间问题

来自分类Dev

.htaccess 重写 QUERY_STRING

来自分类Dev

在Elasticsearch 2.x中将query_string与bool过滤器结合

来自分类Dev

ElasticSearch:为什么query_string不区分大小写,而通配符区分大小写?

来自分类Dev

带有query_string的ElasticSearch 2.0 Java API聚合过滤器

来自分类Dev

Elasticsearch发出query_string请求以查找具有特殊字符的单词

来自分类Dev

elasticsearch query_string关键字搜索与或运算符不起作用

来自分类Dev

在Elasticsearch上使用query_string在字符串字段中搜索数字

来自分类Dev

无法在ElasticSearch的query_string中将字母数字字符串与通配符匹配

来自分类Dev

Elasticsearch query_string 按其术语搜索复杂关键字

Related 相关文章

  1. 1

    ElasticSearch术语查询与query_string?

  2. 2

    Elasticsearch query_string嵌套查询

  3. 3

    Elasticsearch query_string命中字段

  4. 4

    elasticsearch query_string处理特殊字符

  5. 5

    Elasticsearch query_string多值字段

  6. 6

    使用通配符的Elasticsearch query_string搜索

  7. 7

    Elasticsearch-在过滤器中组合query_string和bool查询

  8. 8

    ElasticSearch has_child查询不支持query_string

  9. 9

    带有query_string和range的Elasticsearch

  10. 10

    elasticsearch中的query_string vs group match

  11. 11

    如何在ElasticSearch中使query_string搜索精确短语

  12. 12

    当使用query_string时Elasticsearch提升字段

  13. 13

    在Elasticsearch中使用对特定ID的query_string进行搜索

  14. 14

    弹性搜索查询因query_string中的冒号而崩溃

  15. 15

    弹性搜索query_string包含未查询的术语

  16. 16

    弹性搜索query_string包含未查询的术语

  17. 17

    如何结合 query_string 和 terms 查询?

  18. 18

    弹性搜索中包含query_string的简单查询与bool查询之间的区别

  19. 19

    含参数的QUERY_STRING

  20. 20

    query_string 的空间问题

  21. 21

    .htaccess 重写 QUERY_STRING

  22. 22

    在Elasticsearch 2.x中将query_string与bool过滤器结合

  23. 23

    ElasticSearch:为什么query_string不区分大小写,而通配符区分大小写?

  24. 24

    带有query_string的ElasticSearch 2.0 Java API聚合过滤器

  25. 25

    Elasticsearch发出query_string请求以查找具有特殊字符的单词

  26. 26

    elasticsearch query_string关键字搜索与或运算符不起作用

  27. 27

    在Elasticsearch上使用query_string在字符串字段中搜索数字

  28. 28

    无法在ElasticSearch的query_string中将字母数字字符串与通配符匹配

  29. 29

    Elasticsearch query_string 按其术语搜索复杂关键字

热门标签

归档