我正在使用Elasticsearch v2.3.0。假设我有一个映射索引:
{
"mappings": {
"post": {
"dynamic": false,
"_source": {
"enabled": true
},
"properties": {
"text": {
"norms": {
"enabled": false
},
"fielddata": {
"format": "disabled"
},
"analyzer": "text_analyzer",
"type": "string"
},
"subfield": {
"properties": {
"subsubfield": {
"properties": {
"subtext": {
"index": "no",
"analyzer": "text_analyzer",
"type": "string",
"copy_to": "text"
}
}
}
}
}
},
"_all": {
"enabled": false
}
}
}
所以,从文本subfield.subsubfield.subtext
复制到文本field
因copy_to
。如果你查询信息,然后从纯数据text
显示在text
现场,因为_source
不被修改。如果要获取所有文本,则应汇总客户端上的所有字段。如果有许多子字段,这可能会带来不便。
是否有一个魔术查询,该查询允许获取text
复制了所有文本的字段?
在text
字段集的映射中,"store":"yes"
您应该能够使用字段来获取它
范例 :
put test/test/_mapping
{
"properties" : {
"name" : { "type" : "string","copy_to": "text"},
"text" : {"type" : "string" ,"store" :"yes"},
"subfield": {
"properties": {
"subsubfield": {
"properties": {
"subtext": {
"index": "no",
"type": "string",
"copy_to": "text"
}
}
}
}
}
}
}
put test/test/1
{
"name" : "hello",
"subfield" : {
"subsubfield" : [
{"subtext" : "soundgarden" },
{"subtext" : "alice in chains" },
{"subtext" : "dio" }
]
}
}
post test/_search
{
"fields": [
"text"
]
}
结果
{
"took": 2,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 1,
"hits": [
{
"_index": "test",
"_type": "test",
"_id": "1",
"_score": 1,
"fields": {
"text": [
"hello",
"soundgarden",
"alice in chains",
"dio"
]
}
}
]
}
}
我需要按9个文件分组,并在ElasticSearch中获得每个组的计数,原始代码使用“脚本”,性能很差,所以我需要优化它。我设法创建了一个新的字段并使用“copy_to”,但是当我与新的字段聚合时,我发现了一些问题。 我使用“src ip”和“dst ip”字段作为测试,copy_to字段是“agg condition”。下面是映射: 然后我给它添加一些数据 然后我看到kibana中的映射,它看起
问题内容: 我有一个包含两个字符串字段的索引映射,并且都被声明为copy_to到另一个名为的字段。 索引为“ not_analyzed”。 当我在上创建存储桶聚合时,我期望field1和field2的键连接在一起的不同存储桶。取而代之的是,我得到了带有未连接的field1和field2键的单独存储桶。 示例:映射: 数据在: 和 聚合: 结果: 我期待只有2桶,和 我究竟做错了什么? 问题答案:
问题内容: 我想获取所有Pythons关键字作为字符串的列表。如果我可以为内置函数做类似的事情,那也将很漂亮。 像这样的东西: 问题答案: 您询问了有关 语句的信息 ,同时在输出示例中显示了 关键字 。 如果您在寻找 关键字 ,它们都列在模块中: 从文档: 包含为解释程序定义的所有关键字的序列。如果将任何关键字定义为仅在特定语句生效时才处于活动状态,则这些关键字也将包括在内。
我正在尝试将GZipStream与MemoryStream一起使用。我写入所需的所有字节,然后关闭gzip流,这样之后我需要从内存流中获取压缩的缓冲区,而无需分配额外内存(方法ToArray返回所需的字节数组,但它创建新的字节数组,然后将缓冲区中的所有字节复制到新数组)。据我所知,我只能使用GetBuffer()返回整个缓冲区,所以在这种情况下,我还有另一个问题:缓冲区末尾的所有零字节是否都不属于
我正在尝试使用一个字段,只是为了复制的目的,而不是用下面的映射来索引它自己 但正在获取异常
问题内容: 我只想获取嵌套字段,但不能,因为它不是叶字段。 我在下面尝试过,但是无法匹配嵌套对象中的每个ID和名称。 结果: 这是我的预期结果: 问题答案: 如果您没有某个查询应以某种方式匹配嵌套字段,则可以这样进行: 如果您还有一个查询,并且想返回 匹配 的 嵌套文档,则 可以这样操作(使用):