Elasticsearch 2.5.14中,您可以使用自定义分词器来处理文本数据。下面是一个使用"copy"自定义分词器的示例:

首先,在Elasticsearch的配置中创建自定义分词器定义的文件,例如my_custom_an.json。在这个文件中,您可以定义自己的分词设置。以下是一个示例配置:

{
  "settings": {
    "analysis":      "analyzer": {
        "my_custom_analyzer": {
          "type": "custom",
          "tokenizer": "whitespace",
          "filter": ["lowercase", "copy"]
        }
      }
    }
  }
}

在这个配置中,我们定义了一个名为"my_custom_analyzer"的自定义分词器。它使用了"whitespace"分词器作为标记器(tokenizer),并应用了"lowercase"和"copy"过滤器(filter)。

接下来,使用Elasticsearch的API来创建一个名为"my_index"的索引,并将自定义分器用于字段。以下是一个示例请求:

PUT my_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_custom_analyzer": {
          "type": "custom",
          "tokenizer "whitespace",
          "filter": ["lowercase", "copy"]
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "my_field": {
        "type": "text",
        "analyzer": "my_custom_analyzer"
 }
    }
  }

在这个示例中,我们在映射(mapping)中定义了一个名为"my"的,并将"my_custom_analyzer"应用于该字段。

一旦您的索引和映射创建成功,您就可以将文档索引到"my_index"中,Elasticsearch将使用自定义分词器对文本进行分析。

请注意,这是一个简单示例,您可以根据自己的需求进行更复杂的配置。此外,建议您考虑升级到较新版本的Elasticsearch,因为Elasticsearch 2.5.14已经过时。

抱歉,但是在Elasticsearch 2.5.14版本中,并没有内置的"copy"自定义分词器。 "copy"过滤器是Elasticsearch 7.x版本中引入的。在Elasticsearch 2.x系列版本中,您可以使用其他可用的分词器和过滤器来达到类似的效果。

如果您希望复制原始文本而不进行任何处理,您可以使用"keyword"分词器和"copy_to"参数来实现。下面是一个示例:

首先,在映射(mapping)中定义一个字段,并将"keyword"分词器和"copy_to"参数应用于该字段。例如:

PUT my_index
{
  "mappings": {
    "properties": {
      "my_field": {
        "type": "text",
        "fields": {
          "raw": {
            "type": "keyword",
            "copy_to": "my_field_copy"
          }
        }
      },
      "my_field_copy": {
        "type": ""
      }
    }
  }
}

在这个示例中,我们在映射中定义了一个名为my_field"的文本字段,并在该字段上创建了一个子字段"raw",使用了"keyword"作为分词器,并将原始文本复制到"my_field_copy"字段。

然后,您可以将文档索引到"my_index"中,并在"my_field"字段中存储原始文本,同时也会将原始文本复制到"my_field_copy"字段。

请,这只是一种在Elasticsearch 2.5.14中模拟"copy"自定义分词器的方法,并不完全等同于Elasticsearch 7.x版本中的copy"过滤器。建议您考虑升级到较新版本的Elasticsearch以获得更多功能和更好的性能。

大家都在看: