ElasticSearch bulk批量添加索引后,遍历每个结果,错误码列表如下:
操作 | 状态码 |
CREATE | 201 创建成功 |
其实默认的解析器都不需要指定分词器就可以实现按空格、逗号或者井号分词,对应到elasticsearch-php里的代码示例如下:
<?php
/*
* blankAnalyzer 分析器* 被 Actor 字段分析器使用* 功能 按空格解析器*/$index[[......]
edge_ngram和ngram是ElasticSearch自带的两个分词器,一般设置索引映射的时候都会用到,设置完步长之后,就可以直接给解析器analyzer的tokenizer赋值使用。
但这两个分词器到底有什么区别呢?网上搜来搜去呢,都不是说人话的解释,如果不[……]
不太优雅的写法:
<?php
$query = [ "match_all" => new \stdClass() ];
比较优雅的写法:
<?php
$query = [ "match_all" =>[......]
一般碰到报错:”Types cannot be provided in put mapping requests, unless the include_type_name parameter is set to true”,都是因为ElasticSearch从低版本[……]
Elasticsearch 的日志报错
Unknown properties in plugin descriptor: [jvm, site, isolated]
一般发生于旧版本升级到新版本,且插件直接复制的情况。解决方案如下:
找到插件目录下的plugin-[……]
Explain API提供查询结果的分数说明。 如果你遇到分数和预期不匹配的情况,那么可以使用这个API来进行核对。
官方示例:
GET /twitter/_explain/0
{
"query" : { "mat[......]
Profile API这东西,一般是用来检查查询缓慢的原因用的。这里做个记录:
官方使用示例:
GET /twitter/_search
{
"profile": true, "query" : { "mat[......]
有时候需要核对分词器是否工作良好,可以使用Indices APIs的Analyze来分析。
官方API示例:
GET _analyze
{ "tokenizer" : "keyword", "filter"[......]
时间戳,Elasticsearch是可以在索引创建后,映射字段type为date时,使用format来自定义时间戳格式的,最常用的:
PUT test
{
"mappings": { "type": { &quo[......]