找不到具有指定id_JAVA如何整合es指定字段不分词搜索?

6dab43e90591271eb76e422559f21a4f.png

一、问题

在做一个需求的时候,需要按照电话号码查询用户关系,所以我这边先讲相关信息同步到es,但是电话号码是加密的,所以显示的字符串是杂乱的,既有字母,又有斜杠等号等字符,在进行分词查询的时候匹配不到相应的数据,所以需要对电话号码字段指定为不分词的查询即完全匹配

二、解决

import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldIndex;


@Document(indexName = "address_index",type = "t_address")
public class Address{
  
    @Id
    private Long id ;

    private String address;

    private String province;

    private String city;

    //@Field(type = FieldType.String , index = FieldIndex.not_analyzed)
    @Field(index = FieldIndex.not_analyzed)
    private String mobile;

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

在代码中指定某个字段不进行分词搜索时候,需要对其类型进行指定,否则查看索引如下图

0cbd0052c26a8e480e0e7d5f0aba3d1f.png

如果指定了字段类型,并且该字段不进行分词搜索,则可以看到其index为not_analyzed

db1a045e83e3e1986409465ac89946d5.png

三、es后台管理使用遇到的问题

{
    "query": {
        "bool": {
            "filter": {
                "terms": {
                    "userNo": ["5832794"]
                }
            }
        }
    }
}

b677e60ac83dcc74b69983f27f233d78.png

这里查询方法提交方式是POST、POST、POST

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值