搜索框架与业务的整合

搜索框架与业务的整合

0.      前提

1)  tomcat启动自动索引运行

例子:

AutoRun.java
import java.util.Timer;
import java.util.TimerTask;
importjavax.servlet.ServletContextEvent;
importjavax.servlet.ServletContextListener;
 
public class AutoRun  implementsServletContextListener{
  public voidcontextDestroyed(ServletContextEvent sce) {
      System.out.println("servlet isdestroying!");
      
  }
  
  public voidcontextInitialized(ServletContextEvent sce) {
      TimerTask task = new TimerTask() {
          @Override
          public void run() {
              System.out.println("servlet isstarting!");
              
          }
      };
      Timer timer = new Timer();
      timer.schedule(task, 0, 200);
  }
}
 Web.xml
<listener>
        <listener-class>XXX.XXX.AutoRun</listener-class>
</listener>
 


1.      原理设计

已有原业务数据库A,新建一个B索引数据库,每次A数据库有新数据加入,数据B数据库新增对应的记录并记录状态,定时器定时对B数据库扫描并索引数据。

 

 

T_index:

 搜索框架与业务的整合_第1张图片

T_user:

 

 

其中每当t_user增加一条记录,那么t_index就会相应地更新一条。T_index中,businessId是业务ID,Type是指哪张表,Action是指什么操作,flag是指是否已更新,indexDate索引更新日期。

 

2.      实现

0)  概述:

搜索框架与业务的整合_第2张图片


 

1)IndexCommonServiceextends solrService

主要实现的功能是:继承之前封装的solrService然后实现索引表和业务表之间的一些关联。例如获取索引表某些状态的索引ID,业务ID;根据业务ID获取业务表的数据。

 

2)  IndexService.Java extend IndexCommonService

主要是实现与数据业务表的联动,以及之前封装框架留下来的afterIndexMethod(),beforeIndexMethod()。

 搜索框架与业务的整合_第3张图片


你可能感兴趣的:(搜索框架与业务的整合)