全文检索业务调用集成1【内部使用】

一、在ES中创建附件过滤器

他是一个插件,会自动转换上传的文件

put http://localhost:9200/_ingest/pipeline/attachment

输入参数:

{ 
"description": "解析附件文档", 
"processors": [ 
    { 
    "attachment": {"field": "data", "ignore_missing": true} 
    }, 
    { 
    "remove": {"field": "data"} 
    } 
]} 

返回结果:

{
    "acknowledged": true
}

二、引用检索模块

<dependency>
    <groupId>com.xinyuan</groupId>
    <artifactId>eps-search-common</artifactId>
    <version>2.2.1-SNAPSHOT</version>
</dependency>

三、系统配置ES地址参数

eps:  
  search:
    cluster_nodes: 193.193.193.28:9200 // 可修改成自己的地址

四、创建全文索引(表),业务用

注意:该操作仅初始化执行一次,和数据库表类似。

@Autowired
FullTextSearchHelper searchHelper;

// 创建索引
boolean res = searchHelper.createIndex(null, com.xinyuan.search.common.Constants.TOKEN_TYPE_SMART);

if(res){
    return ReturnValue.newSuccessInstance("创建索引成功");
} else {
    return ReturnValue.newErrorInstance("创建索引失败或者已经存在");
}


// 删除索引
searchHelper.removeIndex(null);

五、写入项目数据(不包含文件),业务用

业务尚未确定,参数变动中。。。

@Autowired
FullTextSearchHelper searchHelper;

/**
     * 业务调用写入一个项目信息
     * @param xmid 项目id
     * @param tymb_id 通用模板id
     * @param params 项目其他参数
     * @throws Exception
     */
searchHelper.putOneXmInfo(String xmid, String tymb_id, Map<String, Object> params);


    /**
     * 业务调用写入一个文件信息
     * @param xmid 项目id
     * @param xmname 项目名称
     * @param fileGroupId 文件标识
     * @throws Exception
     */
searchHelper.putOneXmInfoFile(String xmid, String xmname, String fileGroupId);

 六、获取给定文件的分词集合(特定)

1、先创建测试表

@Autowired
FullTextSearchHelper searchHelper;

// 创建测试索引
boolean res = searchHelper.createSimpleIndex(Constants.TOKEN_TYPE_SMART);
if(res){
    return ReturnValue.newSuccessInstance("创建索引成功");
} else {
    return ReturnValue.newErrorInstance("创建索引失败或者已经存在");
}

// 删除简单索引
searchHelper.removeSimpleIndex();

2、写入数据并直接返回结果

String file = "F:/技术资料/汽车产业链全景图—乘用车篇.pdf";
try{
    String fileContent = FullTextUtils.getFileBase64Value(file);
    List<String> list = searchHelper.putFileAndAcquireTokenList("file", fileContent);
    
    ReturnValue<List<String>> rv = ReturnValue.newSuccessInstance("测试【分词】数据写入成功");
    rv.setData(list);
    return rv;
} catch (Exception e){
    e.printStackTrace();
    return ReturnValue.newErrorInstance("测试【分词】数据写入失败:" + e.getMessage());
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值