当前位置: 首页 > 知识库问答 >
问题:

弹性搜索没有给出结果

公羊光明
2023-03-14

我已经使用ES一段时间了,但今天不起作用。我重新创建了docker compose(smt可以在那里吗?),以下是我在ES中获得的数据:

编辑:这是我的输入(这里我有\u source=False)

{'mappings': {'doc': {'_all': {'enabled': False}, 'dynamic': False, 'properties': {u'string': {'index': 'not_analyzed', 'type': 'string'}, '_time': {'index': 'not_analyzed', 'type': 'date'}, u'float': {'index': 'not_analyzed', 'type': 'float'}, u'datetime': {'index': 'not_analyzed', 'type': 'date'}, u'boolean': {'index': 'not_analyzed', 'type': 'boolean'}, u'integer': {'index': 'not_analyzed', 'type': 'long'}}, '_source': {'enabled': False}}}}

架构:

{
  "07533744-b0e6-4a2f-8e94-1f7501589fee": {
    "aliases": {},
    "mappings": {
      "doc": {
        "dynamic": "false",
        "properties": {
          "_time": {
            "type": "date",
            "format": "strict_date_optional_time||epoch_millis"
          },
          "boolean": {
            "type": "boolean"
          },
          "datetime": {
            "type": "date",
            "format": "strict_date_optional_time||epoch_millis"
          },
          "float": {
            "type": "float"
          },
          "integer": {
            "type": "long"
          },
          "string": {
            "type": "string",
            "index": "not_analyzed"
          }
        }
      }
    },
    "settings": {
      "index": {
        "creation_date": "1465555846775",
        "number_of_shards": "5",
        "number_of_replicas": "1",
        "uuid": "-nZGMXbFRryraL0gPnr80g",
        "version": {
          "created": "2030399"
        }
      }
    },
    "warmers": {}
  }
}

具有“全部匹配”查询的文档(部分):

{
  "took": 15,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 10,
    "max_score": 1,
    "hits": [
      {
        "_index": "07533744-b0e6-4a2f-8e94-1f7501589fee",
        "_type": "doc",
        "_id": "49279857-84a7-4570-ad8e-9051079ca0ac",
        "_score": 1,
        "_source": {
          "doc": {
            "string": "1",
            "_time": "2016-06-10T12:50:59.509593",
            "float": 1.1,
            "datetime": "2016-06-10T12:50:59.497620",
            "boolean": false,
            "integer": 1
          }
        }
      },

现在查询:{"query":{"bool":{"必须":[{"匹配":{"整数": 1}}]}}}

退货

{
  "took": 4,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 0,
    "max_score": null,
    "hits": []
  }
}

知道问题出在哪里吗?

编辑:使用curl查询{“query”:{“bool”:{“must”:[{“match”:{“integer”:1}}}]}}}http://192.168.99.100:9200/07533744-b0e6-4a2f-8e94-1F7501589费用/文件/搜索(无结果)

curl-XGET-d'{"查询":{"bool":{"必须":[{"匹配":{"_id":"49279857-84a7-4570-ad8e-9051079ca0ac"}}]}}}' (获取结果)

共有2个答案

东郭赞
2023-03-14

尝试您想要的相同查询,但做一些更改

GET 07533744-b0e6-4a2f-8e94-1f7501589fee/doc/_search
{
   "query": {
      "bool": {
         "should": [
            {
               "match": {
                  "doc.integer": 1
               }
            }
         ]
      }
   }
}

使用文档。整数而不是整数

袁帅
2023-03-14

改为尝试查询:

{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "integer": 1
          }
        }
      ]
    }
  }
}

更新

请注意,您的文档不符合您向我们展示的映射。

    "_source": {
      "doc": {
        "string": "1",
        "_time": "2016-06-10T12:50:59.509593",
        "float": 1.1,
        "datetime": "2016-06-10T12:50:59.497620",
        "boolean": false,
        "integer": 1
      }
    }

应该是这样的,即没有doc字段。

    "_source": {
        "string": "1",
        "_time": "2016-06-10T12:50:59.509593",
        "float": 1.1,
        "datetime": "2016-06-10T12:50:59.497620",
        "boolean": false,
        "integer": 1

    }
 类似资料:
  • 我使用的是spring数据elasticsearch(4.0版)。现在,我需要将rest高级客户端的搜索结果转换为POJO对象。 我会使用杰克逊图书馆的ObjectMapper。我相信有更好的方法来做到这一点。 Spring data elasticsearch now(4.0版)使用MappingElasticsearchConverter。不幸的是,我不知道如何做到这一点-我没有看到任何相关文

  • 我有一个索引,其中我的每个对象都有状态字段,该字段可以有一些预定义的值。我想获取所有状态为“已启动”、“已更新”、“已删除”的查询,任何与这些匹配的,因此我使用Querybuilder和nativeSearchQuery,通过ElasticsearchOperations在控制台上打印的java创建了这个查询: 我的索引中有“INITIATED”状态的数据,但没有得到查询中提到的任何状态的人。请如

  • 我使用Elasticsearch允许用户输入要搜索的术语。例如,我要搜索以下属性'name': 如果使用以下代码搜索或,我希望返回此文档。 我尝试过做一个bool must和做多个术语,但它似乎只有在整个字符串都匹配的情况下才起作用。 所以我真正想做的是,这个词是否以任何顺序包含两个词。 有人能帮我走上正轨吗?我已经在这上面砸了一段时间了。

  • 我试图从弹性搜索获取记录,我得到这个错误如下 我的Java代码如下 请让我知道,如果我错过了一些东西,而试图索引,我是新的弹性搜索。 同样,如果我想在我的查询中包括一个以上的条件,如下面所示 下面是上述查询的结果,它工作正常 我如何与上面的geoboundingbox查询相结合?我需要将其添加为过滤器吗? 更新:依赖关系 提前谢谢Rakesh

  • 有人能帮我解决这个问题吗?我收到一个错误返回:“没有为[注册查询或]”我是否结构错误?它应该过滤区域为530且开始为空白或区域为530且开始为“06192013”的所有结果,然后在此基础上使用其他过滤器提升文档。

  • 我们在Liferay DXP和Elasticsearch 2.2.0中有一个自定义搜索portlet。我们在elasticsearch设置中为同义词搜索添加了以下设置。 我们还使用以下代码验证是否将同义词分析器添加到索引中。 这给出了synonyms.txt文件中“acl”的所有同义词的结果。但是Liferay搜索不会给搜索匹配同义词。例如:搜索(“acl”)=