您正在查看标签:elasticsearch 下的文章

Java在ElasticSearch中使用LocalDatetime类型

作者: StoneWu  |  时间: 2020-09-11 11:32:05  |  
分类: JAVA开发  |  0 条评论  |  757 次浏览

问题


最近在开发一个搜索功能的需求的时候,遇到了LocalDatetime类型不能保存到ElasticSearch中的问题,报错如下:

ElasticsearchStatusException[Elasticsearch exception [type=mapper_parsing_exception, reason=failed to parse field [createTime] of type [date] in document with id '3000']
]; nested: ElasticsearchException[Elasticsearch exception [type=illegal_state_exception, reason=Can't get text on a START_OBJECT at 1:125]];

经过


从网上查找尝试第一个办法:

将以下注解加到时间字段上,依然无效

@Field(type = FieldType.Date, index = FieldIndex.not_analyzed, store = true,
        format = DateFormat.custom, pattern = "yyyy-MM-dd HH:mm:ss.SSS")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern ="yyyy-MM-dd HH:mm:ss.SSS")
private LocalDateTime createTime;

 

解决办法


在项目中添加以下依赖:

<dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jsr310</artifactId>
</dependency>

在字段上加上以下注解

@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
@Field(type = FieldType.Date, store = true, format = DateFormat.custom, pattern = "yyyy-MM-dd HH:mm:ss.SSS")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss.SSS")
private LocalDateTime createTime;

完美解决

kibana安装配置以及授权访问

作者: StoneWu  |  时间: 2017-07-21 16:26:34  |  
分类: linux学习  |  0 条评论  |  721 次浏览

最近工作中使用了elasticsearch,每次都敲命令行实在是不方便,kibana则可以很方便的管理elasticsearch

1、下载安装包,我用的是5.4.2的elasticsearch,所以下载5.4.2版本的kibana

wget https://artifacts.elastic.co/downloads/kibana/kibana-5.4.2-linux-x86_64.tar.gz

2、解压

tar zxvf kibana-5.4.2-linux-x86_64.tar.gz

3、配置kibana配置文件config/kibana.yml

     具体配置:

#kibana启动端口
server.port: ""

#kibana启动主机
#设为127.0.0.1则为本机访问
#设为内网ip则为只能内网访问
#设为外网ip则可外网访问
server.host: ""

#elasticsearch的访问路径
elasticsearch.url: ""

一般知道这几个参数就行了

 

4、后台启动kibana

nohup bin/kibana log.txt 2>&1 &

 

5、关闭外网访问5601端口

略......

 

6、生成密码文件

htpasswd -c /usr/local/nginx/httpdwd kibana

 

7、nginx设置转发,并且加上授权

server {
        #将kibana的访问端口设置为15601,
        listen       15601;
        server_name  你的服务器ip或者域名;
		
        location / {
            proxy_set_header    X-Real-IP           $remote_addr;
            proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
            proxy_set_header    Host                $http_host;
            proxy_set_header    X-NginX-Proxy       true;
            proxy_set_header    Connection          "";
            proxy_http_version  1.1;
            proxy_redirect    off;
            proxy_pass http://127.0.0.1:5601;
            auth_basic "客官,输个密码呗~";
            auth_basic_user_file /usr/local/nginx/httpdwd;
            access_log off;
        }

}