Package com.common.platform.solr.client.task

Source Code of com.common.platform.solr.client.task.IndexTask

/*
* 文件名:IndexTask.java
* 版权:Copyright 2012-2013 Beijing Founder Apabi Tech. Co. Ltd. All Rights Reserved.
* 描述: 全文检索(Solr)客户端程序
* 修改人:
* 修改时间:
* 跟踪单号:
* 修改单号:
* 修改内容:
*/
package com.common.platform.solr.client.task;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import com.common.platform.solr.client.search.SearchService;
import com.common.platform.solr.client.search.impl.SearchServiceImpl;

/**
* 功能描述:<code>IndexTask</code>提供待索引数据单任务处理。
* <p>
* 功能详细描述:<code>IndexTasksService</code>将调度每一个注册的索引单任务,每个单任务处理所分配的索引数据集。
*
* @author   andy.zheng zhengwei09@founder.com.cn
* @see      IndexTasksService
* @version  1.0, 2013-3-28 下午5:04:51
* @since    SolrClient 1.0
*/
public class IndexTask implements Runnable {

    /** 索引库名称 */
    private String indexStoreName;
   
    /** 当前任务待索引数据  */
    private List<Map<String, Object>> indexDataList = new ArrayList<Map<String, Object>>();
   
    /** 当前任务索引Bean列表 */
    private List<Serializable> indexBeanList = new ArrayList<Serializable>();
   
    /**
     * 功能描述:缺省构造函数
     *
     */
    public IndexTask() {
       
    }
   
    /**
     * 功能描述:重载构造函数
     *
     * @param indexStoreName  索引库名称
     *
     */
    public IndexTask(String indexStoreName) {
        this.indexStoreName = indexStoreName;
    }
   
    /**
     * 功能说明:获取待提交的索引数据集
     *
     * @return List<Map<String,Object>> the indexDataList 返回待提交的索引数据集
     */
    public List<Map<String, Object>> getIndexDataList() {
        return indexDataList;
    }

    /**
     * 功能说明:设置待提交的索引数据集
     *
     * @param indexDataList 待提交的索引数据集
     */
    public void setIndexDataList(List<Map<String, Object>> indexDataList) {
        this.indexDataList = indexDataList;
    }

    /**
     * 功能说明:获取待提交的索引Bean数据集
     *
     * @return List<Serializable> the indexBeanList 返回待提交的索引Bean数据集
     */
    public List<Serializable> getIndexBeanList() {
        return indexBeanList;
    }

    /**
     * 功能说明:设置待提交的索引Bean数据集
     *
     * @param indexBeanList 待提交的索引Bean数据集
     */
    public void setIndexBeanList(List<Serializable> indexBeanList) {
        this.indexBeanList = indexBeanList;
    }

    /*
     * @see java.lang.Runnable#run()
     */
    @Override
    public void run() {
        SearchService searchService = new SearchServiceImpl();
        searchService.setStoreName(this.indexStoreName);
       
        // 索引MAP数据结构
        if(null != indexDataList && !indexDataList.isEmpty()){
            // 调用搜索引擎接口
            boolean isSuccess = searchService.saveOrUpdate(indexDataList);
            if(isSuccess){
                // 更新已索引资源状态
                IndexTasksRequest taskRequest = new IndexTasksRequest();
                taskRequest.updateIndexedStatus(indexDataList);
            }
        }
       
        // 索引bean数据结构
        if(null != indexBeanList && !indexBeanList.isEmpty()){
            // 调用搜索引擎接口
            boolean isSuccess = searchService.saveOrUpdateBeans(indexBeanList);
            if(isSuccess){
                // 更新已索引资源状态
                IndexTasksRequest taskRequest = new IndexTasksRequest();
                taskRequest.updateBeansIndexedStatus(indexBeanList);
            }
        }
    }
}
TOP

Related Classes of com.common.platform.solr.client.task.IndexTask

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.