当前位置: 首页 > 面试题库 >

Elasticsearch:卷毛不起作用

杨轶
2023-03-14
问题内容

我有ES 2.2.0,我正在尝试

curl -XPOST "http://localhost:9200" -d @jnk.json

但我明白了

Warning: Couldn't read data from file "jnk.json", this makes an empty POST.
No handler found for uri [/] and method [POST]

这是文件jnk.json的内容

PUT junktest 
{
  "mappings": {
    "test": {"properties": {
        "DocumentID": {
          "type": "string"
        },
        "Tags":{
            "type" : "string",
          "index" : "not_analyzed"
        },
        "Summary": {
          "type": "string",
          "index" : "not_analyzed"
        },
        "Status": {
          "type": "string",
          "index" : "not_analyzed"
        },
        "Location": {
          "type": "string",
          "index" : "not_analyzed"
        },
        "Error": {
          "type": "string",
          "index" : "not_analyzed"
        },
        "Author": {
          "type": "string",
          "index" : "not_analyzed"
        },
        "Sector": {
          "type": "string",
          "index" : "not_analyzed"
        }
        "Created Date": {
          "type":   "date",
          "format": "yyyy-MM-dd"
        }
      }
    }
  }
}

POST /junktest/test/
{

             "DocumentID":"555661",
             "Tags":["A","B","C","D"],
             "Summary":"Summary Text",
             "Status":"Review",
             "Location":"HDFS",
             "Error":"None",
             "Author":"Poi KLj",
             "Sector":"Energy",
             "Created Date":"2013-04-23"
}

POST /junktest/test/
{

             "DocumentID":"555662",
             "Tags":["B","C","D"],
             "Summary":"Summary Text",
             "Status":"Review",
             "Location":"HDFS",
             "Error":"None",
             "Author":"Abc Mnb",
             "Sector":"Energy",
             "Created Date":"2013-05-23"
}

所以我要创建一个映射,然后发布一个文档。我究竟做错了什么?

我得到相同的结果 -XPUT

编辑

非常感谢@Bahaaldine Azarmi!有一个缺少的逗号,我能够分别创建映射:),但我尝试使用bulk命令作为

curl -XPOST "http://localhost:9200/_bulk" --data-binary @post.json

按照API,它给了我错误

    {"error":{"root_cause":[{"type":"json_parse_exception","reason":"Unexpected char
acter (':' (code 58)): expected a valid value (number, String, array, object, 't
rue', 'false' or 'null')\n at [Source: [B@2f1a62ab; line: 1, column: 27]"}],"typ
e":"json_parse_exception","reason":"Unexpected character (':' (code 58)): expect
ed a valid value (number, String, array, object, 'true', 'false' or 'null')\n at
 [Source: [B@2f1a62ab; line: 1, column: 27]"},"status":500}

这是我的post.json

{ "index" : { "_index" : "junktest", "_type" : "test"} }
{

             "DocumentID":"555661",
             "Tags":["A","B","C","D"],
             "Summary":"Summary Text",
             "Status":"Review",
             "Location":"HDFS",
             "Error":"None",
             "Author":"Poi KLj",
             "Sector":"Energy",
             "Created Date":"2013-04-23"
}

我的语法有问题吗?哪个:角色不合适?

固定

批量api中不允许使用换行符,因为它们被视为定界符。所以文件的正确格式是

{"index":{"_index":"junktest","_type":"test"}}
{"DocumentID":"555661","Tags":["A","B","C","D"],"Summary":"Summary Text","Status":"Review","Location":"HDFS","Error":"None","Author":"Poi KLj","Sector":"Energy","Created Date":"2013-04-23"}

输入文件 必须以换行符结尾


问题答案:

好了,这些查询语法需要在Sense中复制和粘贴(https://www.elastic.co/blog/found-sense-a-cool-json-
aware-interface-to-elasticsearch
)。使用Sense,您将能够顺序运行每个查询。

如果要使用curl,请将工作分为两个调用:

使用以下内容创建映射

curl -XPUT "http://localhost:9200/junktest" -d @mapping.json

顺便说一句,您的映射在这里缺少逗号

},
"Created Date": {

然后进行第二次调用,该调用使用批量API在单个查询中为您的Json对象建立索引,例如:

https://www.elastic.co/guide/zh-CN/elasticsearch/reference/current/docs-
bulk.html



 类似资料:
  • 问题内容: 我正在尝试为各个字段使用不同的分析器设置ElasticSearch索引。但是,我似乎找不到一种设置特定于字段的分析器的方法。这是我创建(测试)索引的方法: 如果我正确阅读了文档,则应创建类型为“ tweet”的索引“ twitter”,并且应通过雪球词根分析器分析“ message”字段的内容。为了对此进行测试,我尝试了以下查询: 如果我没记错的话,那应该会受到打击,因为战斗是战斗的源

  • 我想让ElasticSearch在我的盒子上工作。我有以下映射: 所以我有一个“运动鞋”索引,它有一个“运动鞋”类型,一个“品牌”属性,它有一个“ID”和一个“标题”。 检查运动鞋是否存在,运行curl-xget“http://localhost:9200/sneakers/sneaker/1?prettley”,我得到: 现在,runningcurl-xget'http://localhost:

  • 问题内容: 我正在围绕ElasticSearch的管理客户端编写一个简单的Java包装器。为了测试它,我有一个主要方法,该方法首先检查索引是否存在(IndicesExistsRequest),如果存在则将其删除(DeleteIndexRequest),然后再次创建索引。请参见下面的代码。但是我一直得到IndexAlreadyExistsException。 顺便说一句,我正在尝试为您从命令提示符启

  • 我使用的elasticsearch版本是ES2.2。我为全文搜索键入与官方教程相同的代码。(https://www.elastic.co/guide/en/elasticsearch/guide/current/match-query.html) 看来全文对我不起作用。我的设定有什么问题?谢谢! 我键入的代码如下: 返回的结果是: 当我输入精确的查询时,我只能得到一次命中,该查询存储在索引中。 输

  • 我使用的wamp服务器安装了php 5.4.3版,并启用了curl扩展,编辑了php。ini文件取消对curl扩展行的注释,但问题是,当我尝试使用控制台安装composer时,它会给我一条消息,显示“PHP Startup:cannotable to load dynamic library'c:/wamp/bin/PHP/php5.4.3/ext/PHP_curl.dll”,这是它的屏幕截图 我

  • 问题内容: 我在pom.xml中有一个带有Spring Data Elasticsearch插件的Spring Boot应用程序。我创建了一个我想索引的文档类: 我还为此类创建了一个存储库: 我进行了一个测试,使用存储库对三个示例对象建立了索引。它很长,所以我只发布它。事实是,在ES服务器中创建的映射会忽略@Field批注设置的配置: 没有有关分析器的信息,“ someTransientData”