Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
共享字段名但数据类型不同的Solr映射类型_Solr_Lucene_Mapping - Fatal编程技术网

共享字段名但数据类型不同的Solr映射类型

共享字段名但数据类型不同的Solr映射类型,solr,lucene,mapping,Solr,Lucene,Mapping,如上所述,ES映射(包含共享某个字段名的多个类型)也必须是相同的数据类型 例如: { "eventName": "DescribePlacementGroups", "eventSource": "ec2.amazonaws.com"} { "eventName": "DescribeAccountAttributes", "eventSource": "1.2.3.4"} 在ES中,将上述文档索引到同一索引将导致映射异常,因为eventSource字段在这两种类型之间共享,第一次索引为字符串

如上所述,ES映射(包含共享某个字段名的多个类型)也必须是相同的数据类型

例如:

{ "eventName": "DescribePlacementGroups", "eventSource": "ec2.amazonaws.com"}
{ "eventName": "DescribeAccountAttributes", "eventSource": "1.2.3.4"}
在ES中,将上述文档索引到同一索引将导致映射异常,因为eventSource字段在这两种类型之间共享,第一次索引为字符串,第二次尝试将其索引为IP类型


索尔也会这样吗?可能是Lucene限制?

所以它实际上是Lucene限制…?不,您可以将不同的字段类型放入Lucene中的同一个字段中,但ES和Solr都不允许这样做(可能是因为您应该如何分析查询、排序等变得模棱两可)。实际上,他们可能已经在幕后做了一些这方面的工作,但是以一种可控的、可预测的方式。如果在同一个字段中混合了大量任意的、不相关的数据类型,则无法以合理的方式对该字段进行搜索和排序。但是如果你想的话,Lucene肯定会给你射中自己脚的力量。你到底要用这个场地干什么?将其定义为允许两种格式的类型似乎是最佳选择(即本例中的字符串字段)。我的特定用例是AWS CloudTrail logs,您有gazzilion
eventNames
(我使用eventName作为ES类型映射)。跟踪所有字段类型的工作是巨大的,试图以一种通用的方式解决