我对弹性搜索一无所知。所以,如果这是一个愚蠢的问题,请原谅我,我的问题可能已经在其他地方得到了回答,但我找不到。我想使用弹性搜索作为我的网络中PDF和docx的搜索引擎。我使用fscrawler将PDF文件吸收到弹性搜索中。因为我要摄取的文档是几种语言的,所以我想使用n-graming进行词干分析。为此,我想像这样更新我的映射
PUT test/_mappings/_all
{
"mappings": {
"title": {
"properties": {
"title": {
"type": "text",
"fields": {
"de": {
"type": "string",
"analyzer": "german"
},
"en": {
"type": "string",
"analyzer": "english"
},
"general": {
"type": "string",
"analyzer": "trigrams"
}
}
}
}
}
}
}
现在我收到了这个错误信息
{“error”:{“root_cause”:[{“type”:“mapper_parsing_exception”,“reason”:“root映射定义有不支持的参数:[映射:{title={properties={title={type=text,fields={de={type=string,analyzer=derman},en={type=string,analyzer=english},general={type=string,analyzer trigrams=trigrams}}}}}],“type”:“mapper_parsing_parsing_exception”,“原因”:“根映射定义有不支持的参数:[映射:{title={properties={title={type=text,fields={de={type=string,analyzer=german},en={type=string,analyzer=english},general={type=string,analyzer=trigrams}]”
},status:400}
你知道我该怎么解决这个问题吗?或者你知道我如何在不使用fscrawler的情况下使用正确的映射来接收文件吗?
我的地图
{
"test": {
"mappings": {
"_doc": {
"dynamic_templates": [
{
"raw_as_text": {
"path_match": "meta.raw.*",
"mapping": {
"fields": {
"keyword": {
"ignore_above": 256,
"type": "keyword"
}
},
"type": "text"
}
}
}
],
"properties": {
"attachment": {
"type": "binary"
},
"attributes": {
"properties": {
"group": {
"type": "keyword"
},
"owner": {
"type": "keyword"
}
}
},
"content": {
"type": "text"
},
"file": {
"properties": {
"checksum": {
"type": "keyword"
},
"content_type": {
"type": "keyword"
},
"created": {
"type": "date",
"format": "dateOptionalTime"
},
"extension": {
"type": "keyword"
},
"filename": {
"type": "keyword",
"store": true
},
"filesize": {
"type": "long"
},
"indexed_chars": {
"type": "long"
},
"indexing_date": {
"type": "date",
"format": "dateOptionalTime"
},
"last_accessed": {
"type": "date",
"format": "dateOptionalTime"
},
"last_modified": {
"type": "date",
"format": "dateOptionalTime"
},
"url": {
"type": "keyword",
"index": false
}
}
},
"meta": {
"properties": {
"altitude": {
"type": "text"
},
"author": {
"type": "text"
},
"comments": {
"type": "text"
},
"contributor": {
"type": "text"
},
"coverage": {
"type": "text"
},
"created": {
"type": "date",
"format": "dateOptionalTime"
},
"creator_tool": {
"type": "keyword"
},
"date": {
"type": "date",
"format": "dateOptionalTime"
},
"description": {
"type": "text"
},
"format": {
"type": "text"
},
"identifier": {
"type": "text"
},
"keywords": {
"type": "text"
},
"language": {
"type": "keyword"
},
"latitude": {
"type": "text"
},
"longitude": {
"type": "text"
},
"metadata_date": {
"type": "date",
"format": "dateOptionalTime"
},
"modifier": {
"type": "text"
},
"print_date": {
"type": "date",
"format": "dateOptionalTime"
},
"publisher": {
"type": "text"
},
"rating": {
"type": "byte"
},
"relation": {
"type": "text"
},
"rights": {
"type": "text"
},
"source": {
"type": "text"
},
"title": {
"type": "text"
},
"type": {
"type": "text"
}
}
},
"path": {
"properties": {
"real": {
"type": "keyword",
"fields": {
"fulltext": {
"type": "text"
},
"tree": {
"type": "text",
"analyzer": "fscrawler_path",
"fielddata": true
}
}
},
"root": {
"type": "keyword"
},
"virtual": {
"type": "keyword",
"fields": {
"fulltext": {
"type": "text"
},
"tree": {
"type": "text",
"analyzer": "fscrawler_path",
"fielddata": true
}
}
}
}
}
}
}
}
}
}
这些是我的设置
{
"test": {
"settings": {
"index": {
"mapping": {
"total_fields": {
"limit": "2000"
}
},
"number_of_shards": "5",
"provided_name": "test",
"creation_date": "1542031632596",
"analysis": {
"filter": {
"trigrams_filter": {
"type": "ngram",
"min_gram": "3",
"max_gram": "3"
}
},
"analyzer": {
"fscrawler_path": {
"tokenizer": "fscrawler_path"
},
"trigrams": {
"filter": [
"lowercase",
"trigrams_filter"
],
"type": "custom",
"tokenizer": "standard"
}
},
"tokenizer": {
"fscrawler_path": {
"type": "path_hierarchy"
}
}
},
"number_of_replicas": "1",
"uuid": "7L3QE5_xRACECVbTFlFY-Q",
"version": {
"created": "6040399"
}
}
}
}
}
问题内容: 我想要对Elasticsearch中已存在的索引进行以下设置和映射设置: 我试图添加以下两行代码: 但这是结果: 任何人?非常感谢, 斯汀 这似乎可行: 问题答案: 如果在发送更改后查看设置,您会发现分析仪不存在。实际上,您不能在实时索引上更改设置的“分析”部分。最好使用所需的设置来创建它,否则您可以将其关闭: 关闭索引后,您可以发送新设置。之后,您可以重新打开索引: 关闭索引后,它不
我想为我的索引更新elasticsearch中的默认映射。但是所有的文档都指出我们必须为更新映射提供类型。问题是我有很多索引类型,它们是动态创建的,就像新类型的文档出现时一样。所以最好的处理方法是默认映射类型。因为我不必为每个类型定义映射。但现在我无法更新我的索引默认映射。如果可能的话,请告诉我?
问题内容: 我已经创建了一个索引,它包含数据库中的数据。我的表中只有几个字段,在这些字段中我需要它们作为不同的类型(&)。 因此,我知道可以通过以下方式实现: 但是,当我将索引创建为新索引时,我已经尝试过了。我想知道的是如何使用as 来更新现有字段(即:在这种情况下)? 这可能吗?任何帮助,不胜感激。 问题答案: 创建映射类型后,您在更新内容上会受到很大的限制。根据官方文档,创建现有映射后,只能对
问题内容: 我在elasticsearch网站上找到了一篇文章,描述了如何“在不停机的情况下重新编制索引”,但是每次引入需要自定义映射的新元素时,这实际上是不可接受的(http://www.elasticsearch.org/blog/changing- 零停机时间映射/ ) 有谁知道为什么我不能为Elasticsearch中的现有索引创建映射,而是为新类型创建映射?该类型尚不存在,为什么不呢?也
当我尝试更新我的索引,并添加一个从方法copy_to创建的新字段(见http://pastebin.com/T7GcHSXj)时,我得到了这个我不明白的错误: “error”:“MapperParsingException[解析后根类型映射不为空!其余字段:[映射:{tInfoclient={properties={Client={properties={d\u naiss\u cli={type
问题内容: 我正在尝试了解如何在Elasticsearch中更新索引文档。我不明白它是如何工作的?什么是该API指的是在做什么?假设您有一个带有嵌套文档的文档,您需要做什么来更新它? 删除文档然后索引“已更新”版本与普通更新之间有什么区别? 问题答案: 更新请求从Elasticsearch检索源,对其进行修改并将其索引回Elasticsearch。如果您已经具有使用更新的文档副本,则毫无意义。仅索