精华内容
下载资源
问答
  • 信息检索的步骤

    2018-05-06 10:51:45
    信息组织与检索的六个步骤具体事例的介绍,以PPT的形式讲解具体过程
  • SQL2005实现全文检索的步骤是什么?SQL2005实现全文检索的步骤是什么? 与SQL2000的全文检索实现有什么不同?答案:具本步骤为(括号内为每步所调用的存储过程名称):(1)启动数据库的全文处理功能(sp_fulltext_...

    SQL2005实现全文检索的步骤是什么?
    SQL2005实现全文检索的步骤是什么?
      与SQL2000的全文检索实现有什么不同?
    答案: 
    具本步骤为(括号内为每步所调用的存储过程名称): 

    (1)启动数据库的全文处理功能(sp_fulltext_datebase); 
    (2)建立全文目录(sp_fulltext_catalog); 
    (3)在全文目录中注册需要全文索引的表(sp_fulltext_table); 
    (4)指出表中需要全文检索的列名(sp_fulltext_column) 
    (5)为表创建全文索引(sp_fulltext_table); 
    (6)填充全文索引(sp_fulltext_catalog)。 

    例: 
    use pubs 
    go 
    exec sp_fulltext_database 'enable' 
    --为titles表建立全文索引数据元,其中create为建立,activate为激活,deactivate为关闭表全文索引的激活状态,使 
    它不再参加全文目录填充,drop为删除;create参数中,后面跟的是全文目录名称和索引列名。 
    --下面语句为pubs数据库中的titles表创建全文索引数据元,存储该数据元的全文目录为FT_pubs,所使用的唯一索引为 
    UPKCL_titleidind(title表中为title_id列的PRIMARY KEY约束所建立的唯中索引) 
    sp_fulltext_table titles,'create','FT_pubs','upkcl_titledind' 

    --激活它 
    sp_fulltext_table titles,'activate' 

    --指定参加全文索引的列 
    sp_fulltext_column 'titles','title','add' 
    sp_fulltext_column 'titles','notes','add' 

    下面是一个完整的例子: 
    --在执行该脚本程序之前启动sql server的全文搜索服务,即microsoft search服务 
    use pubs --打开数据库 
    go 
    --检查pubs是否支持全文索引,如果不支持全文索引,则使用sp_fulltext_datebase打开该功能 
    if (select databaseproperty ('pubs','IsFulltextEnables'))=0 
    execute sp_fulltext_database 'enable' 
    --建立全文目录FT_pubs 
    execute sp_fulltext_catalog 'FT_pubs','create' 
    --为titles表建立全文索引数据元 
    execute sp_fulltext_table 'titles','FT_pubs','UPKCL_titleidind' 
    --设置全文索引列名 
    execute sp_fulltext_column 'titles','title','add' 
    execute sp_fulltext_column 'titles','notes','add' 
    --建立全文索引 
    execute sp_fulltext_table 'FT_pubs','activate' 
    --填充全文索引目录 
    execute sp_fulltext_catalog 'FT_pubs','start_full' 
    GO 
    --检查全文目录填充情况 
    WHILE FulltextCatalogProperty("FT_pubs','PopulateStatus')<>0 
    BEGIN 
    --如果全文目录正处于填充状态,则等待30秒后再检测一次 
    WAITFOR DELAY ‘0:0:30’ 
    END 
    --全文目录填充完成后,使用全文目录检索 

    --查询title列或notes列中包含有database或computer字符串的图书名称 
    SELECT title 
    FROM title 
    where CONTAINTS(title,'database') 
    or contains(notes,'database') 
    or contains(title,'computer') 
    or contains(notes,'computer')

    转载于:https://www.cnblogs.com/sishahu/archive/2011/08/02/2124814.html

    展开全文
  • SQL2005实现全文检索的步骤是什么?

    千次阅读 2007-09-25 22:42:00
    SQL2005实现全文检索的步骤是什么?SQL2005实现全文检索的步骤是什么? 与SQL2000的全文检索实现有什么不同?答案: 具本步骤为(括号内为每步所调用的存储过程名称): (1)启动数据库的全文处理功能(sp_fulltext...
     
    <script language="javascript" src="/plus/mytag_js.php?aid=19" type="text/javascript"></script>
    
    SQL2005实现全文检索的步骤是什么?
    SQL2005实现全文检索的步骤是什么?
      与SQL2000的全文检索实现有什么不同?
    答案:
    具本步骤为(括号内为每步所调用的存储过程名称):

    (1)启动数据库的全文处理功能(sp_fulltext_datebase);
    (2)建立全文目录(sp_fulltext_catalog);
    (3)在全文目录中注册需要全文索引的表(sp_fulltext_table);
    (4)指出表中需要全文检索的列名(sp_fulltext_column)
    (5)为表创建全文索引(sp_fulltext_table);
    (6)填充全文索引(sp_fulltext_catalog)。

    例:
    use pubs
    go
    exec sp_fulltext_database 'enable'
    --为titles表建立全文索引数据元,其中create为建立,activate为激活,deactivate为关闭表全文索引的激活状态,使
    它不再参加全文目录填充,drop为删除;create参数中,后面跟的是全文目录名称和索引列名。
    --下面语句为pubs数据库中的titles表创建全文索引数据元,存储该数据元的全文目录为FT_pubs,所使用的唯一索引为
    UPKCL_titleidind(title表中为title_id列的PRIMARY KEY约束所建立的唯中索引)
    sp_fulltext_table titles,'create','FT_pubs','upkcl_titledind'

    --激活它
    sp_fulltext_table titles,'activate'

    --指定参加全文索引的列
    sp_fulltext_column 'titles','title','add'
    sp_fulltext_column 'titles','notes','add'

    下面是一个完整的例子:
    --在执行该脚本程序之前启动sql server的全文搜索服务,即microsoft search服务
    use pubs --打开数据库
    go
    --检查pubs是否支持全文索引,如果不支持全文索引,则使用sp_fulltext_datebase打开该功能
    if (select databaseproperty ('pubs','IsFulltextEnables'))=0
    execute sp_fulltext_database 'enable'
    --建立全文目录FT_pubs
    execute sp_fulltext_catalog 'FT_pubs','create'
    --为titles表建立全文索引数据元
    execute sp_fulltext_table 'titles','FT_pubs','UPKCL_titleidind'
    --设置全文索引列名
    execute sp_fulltext_column 'titles','title','add'
    execute sp_fulltext_column 'titles','notes','add'
    --建立全文索引
    execute sp_fulltext_table 'FT_pubs','activate'
    --填充全文索引目录
    execute sp_fulltext_catalog 'FT_pubs','start_full'
    GO
    --检查全文目录填充情况
    WHILE FulltextCatalogProperty("FT_pubs','PopulateStatus')<>0
    BEGIN
    --如果全文目录正处于填充状态,则等待30秒后再检测一次
    WAITFOR DELAY ‘0:0:30’
    END
    --全文目录填充完成后,使用全文目录检索

    --查询title列或notes列中包含有database或computer字符串的图书名称
    SELECT title
    FROM title
    where CONTAINTS(title,'database')
    or contains(notes,'database')
    or contains(title,'computer')
    or contains(notes,'computer')
    展开全文
  • --停止数据库用户连接createprockillspid (@dbnamevarchar(50))asdeclare@sqlnvarchar(1000),@spidintdeclaregetspidcursorforselectspidfromsysprocesseswheredbid=db_i...
    --停止数据库的用户连接 

    create proc killspid (@dbname varchar(50))  
    as   
    declare @sql nvarchar(1000), @spid int   
    declare getspid  cursor for  select spid from sysprocesses  
    where dbid=db_id(@dbname)     
    open getspid   
    fetch next from getspid into @spid   
    while @@fetch_status=0   
    begin  
         
    exec('kill '+@spid)         
         
    fetch next from getspid into @spid   
    end   
    close getspid   
    deallocate getspid  
    go  

    --用法 
    use master   
    exec killspid '数据库名'  

     

     

    
    
    SQL2005实现全文检索的步骤是什么? 
    
      与SQL2000的全文检索实现有什么不同? 
    
    答案: 
    
    具本步骤为(括号内为每步所调用的存储过程名称): 
    
    
    
    (1)启动数据库的全文处理功能(sp_fulltext_datebase); 
    
    (2)建立全文目录(sp_fulltext_catalog); 
    
    (3)在全文目录中注册需要全文索引的表(sp_fulltext_table); 
    
    (4)指出表中需要全文检索的列名(sp_fulltext_column
    (5)为表创建全文索引(sp_fulltext_table); 
    
    (6)填充全文索引(sp_fulltext_catalog)。 
    
    
    
    例: 
    
    use pubs 
    
    go 
    
    exec sp_fulltext_database 'enable' 
    
    --为titles表建立全文索引数据元,其中create为建立,activate为激活,deactivate为关闭表全文索引的激活状态,使 
    
    它不再参加全文目录填充,drop为删除;create参数中,后面跟的是全文目录名称和索引列名。 
    
    --下面语句为pubs数据库中的titles表创建全文索引数据元,存储该数据元的全文目录为FT_pubs,所使用的唯一索引为 
    
    UPKCL_titleidind(title表中为title_id列的PRIMARY KEY约束所建立的唯中索引) 
    
    sp_fulltext_table titles,'create','FT_pubs','upkcl_titledind' 
    
    
    
    --激活它 
    
    sp_fulltext_table titles,'activate' 
    
    
    
    --指定参加全文索引的列 
    
    sp_fulltext_column 'titles','title','add' 
    
    sp_fulltext_column 'titles','notes','add' 
    
    
    
    下面是一个完整的例子: 
    
    --在执行该脚本程序之前启动sql server的全文搜索服务,即microsoft search服务 
    
    use pubs --打开数据库 
    
    go 
    
    --检查pubs是否支持全文索引,如果不支持全文索引,则使用sp_fulltext_datebase打开该功能 
    
    if (select databaseproperty ('pubs','IsFulltextEnables'))=0 
    
    execute sp_fulltext_database 'enable' 
    
    --建立全文目录FT_pubs 
    
    execute sp_fulltext_catalog 'FT_pubs','create' 
    
    --为titles表建立全文索引数据元 
    
    execute sp_fulltext_table 'titles','FT_pubs','UPKCL_titleidind' 
    
    --设置全文索引列名 
    
    execute sp_fulltext_column 'titles','title','add' 
    
    execute sp_fulltext_column 'titles','notes','add' 
    
    --建立全文索引 
    
    execute sp_fulltext_table 'FT_pubs','activate' 
    
    --填充全文索引目录 
    
    execute sp_fulltext_catalog 'FT_pubs','start_full' 
    
    GO 
    
    --检查全文目录填充情况 
    
    WHILE FulltextCatalogProperty("FT_pubs','PopulateStatus')<>0 
    
    BEGIN 
    
    --如果全文目录正处于填充状态,则等待30秒后再检测一次 
    
    WAITFOR DELAY ‘0:0:30’ 
    
    END 
    
    --全文目录填充完成后,使用全文目录检索 
    
    
    
    --查询title列或notes列中包含有database或computer字符串的图书名称 
    
    SELECT title 
    
    FROM title 
    
    where CONTAINTS(title,'database') 
    
    or contains(notes,'database') 
    
    or contains(title,'computer') 
    
    or contains(notes,'computer') 

    
    
    select*fromwhere*'test'
    
    优化后性能提升 2倍+
    select from Table1 where Contains((Content,Title),'test')
    
    

     


    本文转自曾祥展博客园博客,原文链接:http://www.cnblogs.com/zengxiangzhan/archive/2010/01/03/1638164.html,如需转载请自行联系原作者

    展开全文
  • 开启springboot项目 ...ElasticsearchRepostiry类似jpa一种工具接口,但会随着ela版本修改而变化代码,所以首选jestClient ok!第一步先导入依赖 <dependency> <groupId>org.springf...

     

    开启springboot项目

    首先我这里选择的是jestClient操作elasticsearch

    这里还有一种方式是通过

    ElasticsearchRepostiry类似jpa的一种工具接口,但会随着ela的版本的修改而变化代码,所以首选jestClient

     

    ok!第一步先导入依赖

    <dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>

    <version>1.5.4.RELEASE</version>

    </dependency>

    <dependency>

    <groupId>io.searchbox</groupId>

    <artifactId>jest</artifactId>

    </dependency>

    <dependency>

    <groupId>net.java.dev.jna</groupId>

    <artifactId>jna</artifactId>

    </dependency>

     

    这里需要注意 ①

    springboot对应的elasticsearch的版本

    这里sprigboot是1.5.4,ela依赖也是1.5.4

    springboot 和elasticsearch 版本对应参照请看下面

    https://www.cnblogs.com/xuwujing/p/8998168.html

     

    第二步在application.properties中配置ela 服务地址连接上地址我们才能去调用服务

    #elasticsearch
    spring.elasticsearch.jest.uris=@elasticsearch.service@
    spring.elasticsearch.jest.read-timeout=60000
    spring.elasticsearch.jest.connection-timeout=60000
    

    注:@elasticsearch.service@ 这个是从pom.xml文件中读取出来的

    然后咱们需要去连接服务,咱们需要获取jestClient对象去操作查询

     

    第三步获取jestClient对象的方式

    package com.webi.welive.util;
    
    import io.searchbox.client.JestClient;
    import io.searchbox.client.JestClientFactory;
    import io.searchbox.client.config.HttpClientConfig;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Service;
    
    /**
     * Title: 获取jestClient对象<br>
     * Description: JestClientUtil<br>
     * Company:韦博英语在线教育部</br>
     * CreateDate:2018年06月14日 14:29
     *
     * @author james.fxy
     */
    @Service
    public class JestClientUtil {
    
        private static String spring_elasticsearch_jest_uris;
        private static Integer spring_elasticsearch_jest_read_timeout;
        private static Integer Spring_elasticsearch_jest_connection_timeout;
    
        @Value("${spring.elasticsearch.jest.uris}")
        public void setSpring_elasticsearch_jest_uris(String spring_elasticsearch_jest_uris) {
            JestClientUtil.spring_elasticsearch_jest_uris = spring_elasticsearch_jest_uris;
        }
    
        @Value("${spring.elasticsearch.jest.read-timeout}")
        public void setSpring_elasticsearch_jest_read_timeout(Integer spring_elasticsearch_jest_read_timeout) {
            JestClientUtil.spring_elasticsearch_jest_read_timeout = spring_elasticsearch_jest_read_timeout;
        }
    
        @Value("${spring.elasticsearch.jest.connection-timeout}")
        public void setGetSpring_elasticsearch_jest_connection_timeout(Integer Spring_elasticsearch_jest_connection_timeout) {
            JestClientUtil.Spring_elasticsearch_jest_connection_timeout = Spring_elasticsearch_jest_connection_timeout;
        }
    
        /**
         * Title: 获取jestClient<br>
         * Description: <br>
         * CreateDate: 2018/6/14 16:31<br>
         *
         * @param
         * @return
         * @throws Exception
         * @category 获取jestClient
         * @author james.fxy
         */
        public static JestClient getJestClient() {
            JestClientFactory factory = new JestClientFactory();
            factory.setHttpClientConfig(new HttpClientConfig.Builder(spring_elasticsearch_jest_uris).connTimeout(Spring_elasticsearch_jest_connection_timeout).readTimeout(spring_elasticsearch_jest_read_timeout).multiThreaded(true).build());
            return factory.getObject();
        }
    }
    

    第四步我们使用jestClient操作elasticsearch

    ① 选择我们需要操作的实体类

    package com.webi.welive.lessonhomework.param;
    
    
    import com.webi.welive.lessonhomework.entity.HomeworkAnswerMedia;
    import com.webi.welive.lessonhomework.entity.HomeworkQuestionAnswer;
    import com.webi.welive.lessonhomework.entity.HomeworkQuestionMedia;
    import lombok.Data;
    import org.springframework.data.elasticsearch.annotations.Document;
    
    import java.util.Date;
    import java.util.List;
    
    
    /**
     * Title: LessonHomeworkParam<br>
     * Description: LessonHomeworkParam<br>
     * Company: 韦博英语在线教育部<br>
     * CreateDate:2018年6月9日 上午11:39:42
     *
     * @author james.fxy
     */
    @Data
    @Document(indexName = "homework", type = "homeworktable")
    public class LessonHomeworkParam {
    
      private Integer id;
        private String question;
      private String explain;
      private Boolean isEnabled;
      private Boolean isDeleted;
        private Integer createUserId;
        private Integer sequence;
      private Integer questionTypes;
      private HomeworkQuestionMediaParam homeworkQuestionsMediaParam;
      private List<HomeworkQuestionAnswerParam> homeworkQuestionAnswerParamList;
        public LessonHomeworkParam() {
            super();
        }
    
    }

    注:@Document(indexName = "homework", type = "homeworktable") 

        indexName h和type分别对应着你在往elasticsearch导入数据时设置的

    我在导入数据时是这样设置的如下:

    input {
        jdbc {
          jdbc_connection_string => "jdbc:sqlserver://10.0.0.130:1433;databaseName=Webi_WeLiveDBTest;"
          jdbc_user => "speakhi_user"
          jdbc_password => "speakhi_user123"
          jdbc_driver_library => "/usr/share/logstash/mssql-jdbc-6.2.1.jre8.jar"
          jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
          jdbc_paging_enabled => "true"
          statement => "SELECT * from Lesson_Homework where CreateTime < GETDATE()"
          schedule => "* * * * *"
          type => "lesson_homework"
        }
       
    output {
     stdout {
                    codec => rubydebug
        }
        if[type] == "lesson_homework"{
            elasticsearch {
            hosts  => "10.0.0.13:9200"
            index => "homework"
            document_type => "homeworktable"
            document_id => "%{id}"
            }
        }
        
    }

     

    可以看到我在导入elasticsearch导入的数据配置的indexName和type对应实体类中的document

     

    ② 使用jestclient操作查询语句

     

    字符串拼接以后执行,根据官网的文档来的

    https://www.elastic.co/blog/found-java-clients-for-elasticsearch

    具体的拼接数据方式可以参考如下

    https://segmentfault.com/a/1190000004429689

    获取数据的方式解析方式有两种

    https://blog.csdn.net/u011781521/article/details/77853824

    我这里使用了手动解析的方式,因为发现自动解析不好用

    注:因为数据在导入elasticsearch的时候类型会是通过jackJson序列化过去的

    我们在解析数据的时候需要保持参数类型是从elasticsearch过来的

    /**
       * Title: <br>
       * Description: 使用全文检索查询课程信息(添加过滤条件根据question查询)<br>
       * CreateDate: 2018/6/14 14:47<br>
       *
       * @param query
       * @return com.mingyisoft.javabase.bean.CommonJsonObject<java.lang.Object>
       * @throws Exception
       * @category @author james.fxy
       */
      public CommonJsonObject<Object> findAllHomeworkByElasticsearch(String query) throws Exception {
    
        CommonJsonObject<Object> json = new CommonJsonObject<>();
        JestClient jestClient = null;
        try {
          jestClient = JestClientUtil.getJestClient();
          // 判断一下需要查询的query字段第一个字段和最后一个字段是否是双引号,给进行一个去除双引号的处理
          if (query.startsWith("\"")) {
            query = query.substring(1);
          }
          if (query.endsWith("\"")) {
            query = query.substring(0, query.length() - 1);
          }
        String queryStr = " {\"query\": { \"match\": { \"question\":\"" + query + "\" } }\n" +
            "  ,\n" +
            "  \"post_filter\": {    \n" +
            "        \"term\" : {\n" +
            "            \"isdeleted\" : \"false\"\n" +
            "        }\n" +
            "    }\n" +
            "}";
        json = search(jestClient, indexName, typeName, queryStr);
        jestClient.shutdownClient();
        } catch (Exception e) {
          json.setCode(ErrorCodeEnum.ELASTIC_SEARCH_HAS_ERROR.getCode());
          json.setMsg(ErrorCodeEnum.ELASTIC_SEARCH_HAS_ERROR.getDescription());
          e.printStackTrace();
        }
        return json;
      }

    将jestClient和查询语句一起传过去,使用jestClient执行查询

    得出结果数据解析数据的过程如下

    实际上这就是queryStr字符串在 kibana上执行所得到的结果,我们将得到的结果进行一个json的序列化解析反馈给前端

     

     

    /**
       * Title:全文检索课后作业 <br>
       * Description: 全文检索方法<br>
       * CreateDate: 2018/6/14 14:44<br>
       *
       * @param jestClient
       * @param indexName  索引名称
       * @param typeName   索引类型
       * @param query      查询语句
       * @return com.mingyisoft.javabase.bean.CommonJsonObject<java.lang.Object>
       * @throws Exception
       * @category
       * @author james.fxy
       */
      public static CommonJsonObject<Object> search(JestClient jestClient, String indexName, String typeName, String query) throws Exception {
        CommonJsonObject<Object> json = new CommonJsonObject<>();
    
    //        List<LessonHomeworkParam> lessonHomeworkParams = new ArrayList<>();
        Search search = new Search.Builder(query)
                .addIndex(indexName)
                .addType(typeName)
                .build();
        JestResult jr = jestClient.execute(search);
    //        System.out.println("全文搜索--" + jr.getJsonString());
        //自动解析
    //        System.out.println("全文搜索--" + jr.getSourceAsObject(User.class));
    //        List<SearchResult.Hit<LessonHomeworkParam, Void>> jrList;
    //        jrList = ((SearchResult) jr).getHits(LessonHomeworkParam.class);
    //        for (SearchResult.Hit<LessonHomeworkParam, Void> lessonHomeworkParamVoidHit : jrList) {
    //            LessonHomeworkParam lessonHomeworkParam = lessonHomeworkParamVoidHit.source;
    //            lessonHomeworkParams.add(lessonHomeworkParam);
    //        }
    //        json.setData(lessonHomeworkParams);
    //        return json;
    //    }
        // 手动解析
        JsonObject jsonObject = jr.getJsonObject();
        JsonObject hitsobject = jsonObject.getAsJsonObject("hits");
        long took = jsonObject.get("took").getAsLong();
        long total = hitsobject.get("total").getAsLong();
        JsonArray jsonArray = hitsobject.getAsJsonArray("hits");
    
        System.out.println("took:" + took + "  " + "total:" + total);
    
        List<LessonHomeworkParam> lessonHomeworkParams = new ArrayList<LessonHomeworkParam>();
    
        for (int i = 0; i < jsonArray.size(); i++) {
          JsonObject jsonHitsObject = jsonArray.get(i).getAsJsonObject();
    
          // 获取返回字段
          JsonObject sourceObject = jsonHitsObject.get("_source").getAsJsonObject();
    
          // 封装LessonHomeworkParam对象
          LessonHomeworkParam lessonHomeworkParam = new LessonHomeworkParam();
          lessonHomeworkParam.setId(Integer.parseInt(sourceObject.get("id").getAsNumber().toString()));
          lessonHomeworkParam.setExplain(sourceObject.get("explain").getAsString());
          lessonHomeworkParam.setQuestion(sourceObject.get("question").getAsString());
          // lessonHomeworkParam.setCreateUserId(Integer.parseInt(sourceObject.get("createuserid").getAsNumber().toString()));
          lessonHomeworkParam.setQuestionTypes(Integer.parseInt(sourceObject.get("questiontypes")
              .getAsNumber().toString()));
          lessonHomeworkParam.setIsDeleted(sourceObject.get("isdeleted").getAsBoolean());
          lessonHomeworkParam.setIsEnabled(sourceObject.get("isenabled").getAsBoolean());
          lessonHomeworkParams.add(lessonHomeworkParam);
        }
        json.setData(lessonHomeworkParams);
        return json;
      }

    给大家展示一下queryStr在 kibana 上执行的结果

    从kibana 上拿到的数据结果也就是我们在java代码中解析的数据

    此处需要注意一点就是elasticsearch本身的数据使用jackson进行序列化了

     

    kibana解析查询出来的数据解释:

    kibana上查询出来的数据

    例如:

    {

    "took": 40,

    "timed_out": false,

    "_shards": {

    "total": 27,

    "successful": 27,

    "skipped": 0,

    "failed": 0

    },

    "hits": {

    "total": 1529,

    "max_score": 5.710427,

    "hits": [

    {

    "_index": "catalog",

    "_type": "catalogtable",

    "_id": "2406",

    "_score": 5.710427,

    "_source": {

    "@timestamp": "2018-06-25T01:23:00.031Z",

    "sequence": 8,

    "id": 2406,

    "isdeleted": false,

    "parentid": 2197,

    "createuserid": 10,

    "name": "2",

    "@version": "1",

    "type": "lesson_catalog",

    "createtime": "2018-06-23T08:20:35.183Z"

    }

    }

    took字段表示该操作的耗时(单位为毫秒),timed_out字段表示是否超时,hits字段表示命中的记录 total:返回记录数。max_score:最高的匹配程度

    hits:返回的记录组成的数组。

     

     

    我们在解析数据时需要注意格式转换

    如下代码:

    
          // 获取返回字段
          JsonObject sourceObject = jsonHitsObject.get("_source").getAsJsonObject();
    
          // 封装LessonHomeworkParam对象
          LessonHomeworkParam lessonHomeworkParam = new LessonHomeworkParam();
          lessonHomeworkParam.setId(Integer.parseInt(sourceObject.get("id").getAsNumber().toString()));
          lessonHomeworkParam.setExplain(sourceObject.get("explain").getAsString());
          lessonHomeworkParam.setQuestion(sourceObject.get("question").getAsString());
          // lessonHomeworkParam.setCreateUserId(Integer.parseInt(sourceObject.get("createuserid").getAsNumber().toString()));
          lessonHomeworkParam.setQuestionTypes(Integer.parseInt(sourceObject.get("questiontypes")
              .getAsNumber().toString()));
          lessonHomeworkParam.setIsDeleted(sourceObject.get("isdeleted").getAsBoolean());
          lessonHomeworkParam.setIsEnabled(sourceObject.get("isenabled").getAsBoolean());

     

    中间数据的格式转换就是我们需要的去手动解析的

    注:具体的类型对应如下图 type中的类型,我们需要进行类型的转换,然后才能拿出自己想要的数据

     

     

    至此,java的elasticsearch全文检索代码部分

    另有博客介绍elasticsearch的原理配置 

    https://blog.csdn.net/weixin_37970049/article/details/80989617

     

    关注我的公众号学习更多java知识

    展开全文
  • 使用 DataReader 检索数据的步骤: 1、创建 Command 对象 2、调用 ExecuteReader() 创建 DataReader 对象 3、使用 DataReader 的 Read() 方法逐行读取数据 4、读取某列的数据,(type)dataReader[ ] 方法一:...
  • Lucene 检索的步骤

    2019-01-24 17:40:00
    语言处理同检索过程中语言处理几户相同,区别在于将词learned变回原形learn 第二步,搜索索引,得到符合语法树文档 在反向表中,分别找出lucene,learn,hadoop文档链表 对lucene和learn链表...
  • 检索的原理和方法步骤 一、计算机EI检索的原理 计算机EI检索的原理是将检索者的提问与系统中的记录进行匹配运算,符合条件者即为命中记录,最后输出结果。主要检索功能有布尔逻辑检索、位置逻辑检索,字段限制和截...
  • 全文检索步骤

    2018-04-20 18:03:45
     非结构化数据:没有固定格式,长度,磁盘上文件,这种数据不是很好查,可以使用全文检索;全文检索: 将非结构化数据中一部分信息提取出来,重新组织,使其变得有一定结构,称为索引。先创建索引在对索引...
  • Windows系统下Nutch检索工具的搭建步骤,对于从事信息检索方向且用到Nutch开源检索工具的同志提供入门级参考资料。以前自己搭建工具平台时记录的步骤,希望对大家有用。
  • 使用 DataReader 检索数据的步骤: 1、创建 Command 对象 2、调用 ExecuteReader() 创建 DataReader 对象 3、使用 DataReader 的 Read() 方法逐行读取数据 4、读取某列的数据,(type)dataReader[ ] 5、...
  • EI检索投稿基本步骤

    2018-08-22 15:24:18
    EI检索投稿基本步骤首先进行文献检索工作,获取最新的参考资料,然后确定EI检索论文主题,拟定题目,再选择拟投期刊,查找这些期刊的影响因子,同时要了解这些期刊收录...从EI检索来源期刊中选出欲投稿期刊的步骤如...
  • 信息检索常用方法 ...抽查法:针对学科发展特点,抽出其发展迅速、发表文献较多的一段时期,逐年进行检索的一种方法,能以较少的时间获得较多的文献。 追溯法 利用已有的文献后面参考文献进行追溯查...
  • 明确文献检索的目的 明确课题要解决的实质问题 明确有哪些主题概念 各主题概念之间的关系 明确课题涉及的学科范围 明确课题所需文献信息的语种、时间范围等具体要求 如果对课题不是很了解,可借助图书、百科全书...
  • 法律信息检索是从事法学研究和其他相关...法律信息检索的步骤主要包括确定检索词、选取检索工具以及分析评价检索结果等几个阶段,只有熟练掌握检索的步骤和技巧,才能在浩如烟海的信息资源中查找到用户需要的法律信息。
  • CTP 开发问题检索步骤

    2019-01-22 14:21:46
    1、前置地址是不是正确(较多为Req执行但是Rsp不执行和在前置地址产生书写错误) 2、是否导入链接库(多表现为无法解析外部命令) ...3、看一个参数值得赋值是否正确(多表现为Req值是否正确和完满)  ...
  • 请根据以下步骤逐步完成 安装相关包 pip install django-haystack pip install whoosh 在工程settings.py文件中进行以下操作 注册检索应用 ’ INSTALLED_APPS = [ ''''' 'haystack' ] 2.添加haystack...
  • oracle全文检索的实现

    2009-07-18 21:13:02
    oracle实现全文检索的步骤与具体的实现方式
  • <div><p>安装poseidon/docs/get_started.md 快速开始里面的步骤做,最后在数据检索时,数据检索不出来</p><p>该提问来源于开源项目:Qihoo360/poseidon</p></div>
  • 1.全文检索技术解决方案 原来方法和实现搜索功能流程图: 传统搜索引擎技术,在一般数据库数据量比较小,用户量比较小时候是比较常见 但是在数据量增加到一定量级时候,数据库压力就会变得很大,...
  • 关于sphinx就不多累言了,一套相当优秀全文检索引擎.无论索引速度还是检索速度真是非常快. 至于coreseek ,可访问李沫南站点 http://www.coreseek.com 顺便在此感谢李沫南同学为 sphinx中文化做贡献 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,792
精华内容 1,116
关键字:

检索的步骤