我有一个文档,我希望将其存储在ElasticSearch中,并能够对其运行查询,但我认为文档结构可能格式不正确,因此我无法进行有效的查询。
该文档试图是通用的,因此具有一组重复结构。
例如:
description : [
{ type : "port", value : 1234 }.
{ type : "ipaddress", value : "192.168.0.1" },
{ type : "path", value : "/app/index.jsp app/hello.jsp" },
{ type : "upsince", value : "2014-01-01 12:00:00" },
{ type : "location", value : "-40, 70" }
]
注意:我简化了这个例子,就像在真实的文档中一样,重复结构有大约7个字段,其中3个字段将明确标识“类型”。
从上面的示例中,我看不到如何编写映射,因为“值”可以是:
我能看到的唯一解决方案是,需要将文档转换为另一种格式,以便更容易与ElasticSearch进行映射?
如果你先像这样转换他们的文档,你会为自己省去很多麻烦
{
"port": 1234,
"ipaddress" : "192.168.0.1" ,
"path" : "/app/index.jsp app/hello.jsp",
"upsince" : "2014-01-01 12:00:00",
"location" : "-40, 70"
}
Elasticsearch被设计为在字段和值方面具有灵活性,因此它已经可以处理您抛给它的几乎任何键/值组合。
或者,您可以将原始文档包含在显式存储但未索引的字段中,以防您需要在查询中返回原始文档。
这个案例在这里有所描述:http://www.found.no/foundation/beginner-troubleshooting/#keyvalue-woes
同一字段中不能有不同类型的值。您可以使用不同的字段,如“location\u value”、“timestamp\u value”等。
这里有一个可运行的例子:https://www.found.no/play/gist/ad90fb9e5210d4aba0ee
#!/bin/bash
export ELASTICSEARCH_ENDPOINT="http://localhost:9200"
# Create indexes
curl -XPUT "$ELASTICSEARCH_ENDPOINT/play" -d '{
"mappings": {
"type": {
"properties": {
"description": {
"type": "nested",
"properties": {
"integer_value": {
"type": "integer"
},
"type": {
"type": "string",
"index": "not_analyzed"
},
"timestamp_value": {
"type": "date"
}
}
}
}
}
}
}'
# Index documents
curl -XPOST "$ELASTICSEARCH_ENDPOINT/_bulk?refresh=true" -d '
{"index":{"_index":"play","_type":"type"}}
{"description":[{"type":"port","integer_value":1234},{"type":"upsince","timestamp_value":"2014-01-01T12:00:00"}]}
'
问题内容: 在使用nutch和elasticsearch进行爬网时面临一些严重的问题。 我们的应用程序中有两个数据存储引擎。 的MySQL elasticsearch 可以说我在mysql db的urls表中存储了10个url。现在,我想在运行时从表中获取这些url,并将其写入seed.txt以进行爬网。我已经将所有这些网址一次性写入了txt。现在,我开始抓取,然后将这些文档在elasticsea
我正在尝试索引stackoverflow数据。首先,我使用指定的映射和设置创建一个索引。 然后我尝试批量索引我的文档: 给定错误:('500个文档未能索引.', [{'索引':{'_index':'sof-问题-答案2','_type':'Stackoverflow','_id':1','status':400,'错误':{'type':'illegal_argument_exception','
随着ElasticSearch计划删除映射类型,这是否也意味着不再使用嵌套文档和嵌套查询?ElasticSearch将如何支持无类型上下文中的嵌套对象查询? 我正在考虑的功能是能够只返回匹配搜索条件的嵌套数组中的命中。 编辑1:ElasticSearch版本6中的映射查询示例 ElasticSearch 6映射 ElasticSearch 6查询
我目前正在使用Laravel v7。2.安装babenkoivan/scout elasticsearch驱动程序(4.2)并使用AWS elasticsearch 7.1调幅。在我的应用程序中映射了几个表,这些表工作正常,但嵌套映射存在问题,以前该映射工作正常,现在已损坏。 我将数据保存到一个表中,并将该表数据复制到AWS Elasticsearch中。我使用MySQL 5.6,所以我使用TEX
问题内容: 我有一个要在elasticSearch上建立索引的文档,该文档包含一些我事先不知道的动态键,例如下面的示例中的“ spanish”或“ french” 我使用的是DSL elastic4s为了使我的映射(通过在DSL的createIndex),但我找不到如何创建,使用这个库的基础上,“匹配”选项动态映射(如建议在这里),在为了为路径content.title下存储的每种语言指定不同的分
我想将字段类型从“string”更改为“date”(具体格式为“epoch\u second”)。由于无法更新现有索引的映射,因此我需要创建一个新索引,我最想使用现有索引的映射。以下是我正在使用的内容: Curl-XGET'http://localhost:9200/sam/saga/_mapping?pretty' 要将当前索引的映射转储到json文件中,其内容如下: 然后我替换 具有 并将新文