gpt4 book ai didi

elasticsearch - 当建议失败时,对多个索引的搜索查询未找到任何匹配项

转载 作者:行者123 更新时间:2023-12-02 22:36:37 25 4
gpt4 key购买 nike

我有几个具有不同字段的索引,虽然只包含搜索查询的请求会产生预期的结果,但当我将查询与 suggest 结合使用时,我没有得到任何命中。对包含命中的索引不起作用的部分(因为 suggest 中的字段引用不存在)。

编辑:我没有得到任何关于索引的建议并不是一个真正的问题,但我希望有一种方法可以确保我仍然得到 query 的结果。部分即使suggestion部分失败。

有问题的实际查询是 multi_match跨越几个领域相当复杂,但我可以用下面的例子重现我的问题。

  • 创建两个具有不同字段的索引
    PUT /test1
    {
    "mappings": {
    "default": {
    "properties": {
    "field1": {
    "type": "text"
    }
    }
    }
    }
    }

    PUT /test2
    {
    "mappings": {
    "default": {
    "properties": {
    "field2": {
    "type": "text"
    }
    }
    }
    }
    }
  • 向索引添加一些东西
    PUT /test1/default?refresh=true
    {
    "field1": "DEADBEEF in index 1"
    }

    PUT /test2/default?refresh=true
    {
    "field2": "FOOBARDOO in index 2"
    }
  • 搜索 FOOBARDfield2产生索引 test2 的预期结果
    POST /_search
    {
    "query": {
    "match": {
    "field2": {
    "query": "FOOBARD",
    "fuzziness": 2
    }
    }
    }
    }
  • 但是当我添加 suggest 时到查询
     {
    "query": {
    "match": {
    "field2": {
    "query": "FOOBARD",
    "fuzziness": 2
    }
    }
    },
    "suggest": {
    "text": "FOOBARD",
    "suggest-field1": {
    "term": {
    "field": "field1"
    }
    }
    }
    }

    我收到一条关于缺少映射的失败消息,搜索命中为零:
    {
    ...
    "_shards": {
    ...
    "failures": [
    {
    "shard": 0,
    "index": "test2",
    "node": "TGUboSt9SweF3KQBKnoVSg",
    "reason": {
    "type": "illegal_argument_exception",
    "reason": "no mapping found for field [field1]"
    }
    }
    ]
    },
    "hits": {
    "total": 0,
    "max_score": null,
    "hits": []
    },
    ...
    }

  • 在寻找多个索引的建议时,这是预期的行为,还是我在这里做错了什么?我想避免进行两个查询,这两个查询仅在建议部分有所不同。

    任何提示和指针都受到高度赞赏。

    最佳答案

    这是预期的行为。 Suggest 期望字段映射存在于所有查询索引中。

    这是相关的source code (不确定它是否在手册中)

    关于elasticsearch - 当建议失败时,对多个索引的搜索查询未找到任何匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50038219/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com