精华内容
下载资源
问答
  • 针对云计算环境下已有的密文检索方案不支持检索关键词语义扩展、精确度不够、检索结果不支持排序的问题,提出一种支持检索关键词语义扩展的可排序密文检索方案。首先,使用词频逆文档频率(TF-IDF)方法计算文档中关键词...
  • Python 检索关键词对比

    2019-11-24 06:25:57
    内容:做数据爬取时,爬取完成后为了确认检索关键词是否都进行爬取,使用此程序进行对比,提高效率。 # -*- coding: utf-8 -*- import os #more.txt保存全部关键词,less.txt保存检索过的关键词 with open("more....

    内容:做数据爬取时,爬取完成后为了确认检索关键词是否都进行爬取,使用此程序进行对比,提高效率。

    # -*- coding: utf-8 -*-
    import os
    #more.txt保存全部关键词,less.txt保存检索过的关键词
    with open("more.txt","r", encoding='UTF-8') as afile:
        while True:
            linea = afile.readline()
            linea = linea[:-1]
            if linea =='':
                break
            with open("less.txt","r", encoding='UTF-8') as bfile:
    
                while True:
                    lineb = bfile.readline()
                    lineb = lineb[:-1]
                    if linea==lineb and linea!='':
                        print('more:'+linea+"   "+ 'less:'+lineb)
                        break
                    else :
                        if lineb == '':
                            with open("result.txt","a",encoding="utf-8") as f:
                                f.write(linea+"\n")
                            break
                        continue
    
    
    print("比对完成")
    

    作者:WangB

    展开全文
  • 对于vi查看文件的方式,检索关键词只需在命令行输入 /hello world (ps:"hello world"是你要搜索的关键词) 对于cat命令查看的文件,则在使用cat时进行如下处理 cat /myfile/aaa.txt | grep hello (ps:/myfile/aaa....

    对于vi查看文件的方式,检索关键词只需在命令行输入

    /hello world
    (ps:"hello world"是你要搜索的关键词)

    对于cat命令查看的文件,则在使用cat时进行如下处理

    cat /myfile/aaa.txt | grep hello
    (ps:/myfile/aaa.txt为目标文件,hello为关键词)

    find命令

    find -name *history //查找当前目录及子目录下所有以history结尾的文件

    find -name mysql* //查找当前目录及子目录下所有以mysql开头的文件

    find -name mysql* -o -name *history //查找以mysql开头或history结尾的文件

     

    小技巧:

    tab建可以补全输入的

    查看目录磁盘占用大小:du -sh * | sort -nr 或者 du . -d 1 -h

     

    nohup bin/logstash --java-execution > /data/softout/logstash.log 2>&1 &

     

     

    展开全文
  • android实现城市选择 关键词、拼音检索 滑动检索 android实现城市选择 关键词、拼音检索 滑动检索 android实现城市选择 关键词、拼音检索 滑动检索
  • 第一部分要求输入关键词,在几百个文件中检索,有哪个文件内容中有这个词,就输出该文件名,如输入stake这个词,输出001.txt。 本来想用strstr查找的,但是折腾了几天,要不就是所有文件名都无法输出,全是NULL,...
  • 针对这一研究问题,提出关系数据库上基于时态语义的关键词检索方法,引入时态信息构建时态数据图,设计时态相关性评分机制,在时态图搜索过程中引入时态语义约束,设计基于关键词的时态检索算法。实验验证了该方法...
  • 请教一下大家对检索关键词之后。怎么输出关键词所在的文件文本?
  • 对于给定文本库,用户提交检索关键词(例如: NBA, basket, ball),在文本库中查询与检索关键词最相关的 k 个文本(例如 k=5),并根据文本与检索关键词的相关度,对这 k 个文本进行排序,将排序后的结果返回给用户...
  • 之前看过了solr的全文检索工具,原理比较简单,理解起来也快;这次我们项目上要求用Elasticsearch实现全文检索,据说这个插件功能更厉害,但是也没有具体研究过;这里就省略了es的部署过程和集成springboot的方法了...

    之前看过了solr的全文检索工具,原理比较简单,理解起来也快;这次我们项目上要求用Elasticsearch实现全文检索,据说这个插件功能更厉害,但是也没有具体研究过;这里就省略了es的部署过程和集成springboot的方法了,直接附上我的后台查询代码;

    
    import com.pridecn.file.domain.EsFileInfo;
    import com.pridecn.file.service.ElasticsearchService;
    import io.searchbox.client.JestClient;
    import io.searchbox.core.Search;
    import io.searchbox.core.SearchResult;
    import org.apache.lucene.queryparser.classic.QueryParser;
    import org.elasticsearch.index.query.QueryBuilders;
    import org.elasticsearch.search.builder.SearchSourceBuilder;
    import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    
    @Service
    public class ElasticsearchServiceImpl implements ElasticsearchService {
    
        @Autowired
        JestClient jestClient;
    
        @Override
        public List<EsFileInfo> findPublishedFileByKeyWord(String keyWord, int pageNum, int pageSize) {
            //处理特殊字符
            keyWord = QueryParser.escape(keyWord);
            SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
            searchSourceBuilder.query(QueryBuilders.boolQuery()
                                                    .should(/*QueryBuilders.queryStringQuery(keyWord).field("FILE_NAME")*/QueryBuilders.matchQuery("FILE_NAME",keyWord).analyzer("ik_smart"))
                                                    .should(/*QueryBuilders.queryStringQuery(keyWord).field("attachment.content")*/QueryBuilders.matchQuery("attachment.content",keyWord).analyzer("ik_smart")));
            //初始化高亮对象
            HighlightBuilder highlightBuilder = new HighlightBuilder();
            highlightBuilder.field("FILE_NAME");//高亮title
            highlightBuilder.field("attachment.content");
            highlightBuilder.preTags("<span style='color:red'>").postTags("</span>");//高亮标签
            //设置高亮
            searchSourceBuilder.highlighter(highlightBuilder);
            //设置起始页
            searchSourceBuilder.from((pageNum - 1) * pageSize);
            //设置页大小
            searchSourceBuilder.size(pageSize);
            //指定索引
            Search search = new Search.Builder(searchSourceBuilder.toString())
                    .addIndex("book")
                    .build();
            SearchResult result = null ;
            List<EsFileInfo> list = new ArrayList<>();
            try {
                //执行查询操作
                result = jestClient.execute(search);
                System.out.println("本次查询共查到:"+result.getTotal()+"个关键字!"+result.getJsonObject());
                List<SearchResult.Hit<EsFileInfo,Void>> hits = result.getHits(EsFileInfo.class);
                for (SearchResult.Hit<EsFileInfo,Void> hit : hits) {
                    EsFileInfo source = hit.source;
                    //获取高亮后的内容
                    Map<String, List<String>> highlight = hit.highlight;
                    List<String> file_name = highlight.get("FILE_NAME");//高亮后的title
                    if(file_name!=null){
                        source.setFile_name(file_name.get(0));
                    }
                    List<String> content = highlight.get("attachment.content");//高亮后的title
                    if(content!=null){
                        source.getEsDoc().setContent(content.get(0));
                    }
                    System.out.println("姓名:"+source.getFile_name());
                    System.out.println("作者:"+source.getEsDoc().getAuthor());
                    System.out.println("内容:"+source.getEsDoc().getContent());
                    list.add(source);
                }
                return list;
            } catch (IOException e) {
                e.printStackTrace();
                return new ArrayList<>();
            }
        }
    
        @Override
        public int findPublishedCountByKeyWord(String keyWord) {
            //处理特殊字符
            keyWord = QueryParser.escape(keyWord);
            SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
            searchSourceBuilder.query(QueryBuilders.boolQuery()
                    .should(QueryBuilders.queryStringQuery(keyWord).field("FILE_NAME"))
                    .should(QueryBuilders.queryStringQuery(keyWord).field("attachment.content")));
            //初始化高亮对象
            HighlightBuilder highlightBuilder = new HighlightBuilder();
            highlightBuilder.field("FILE_NAME");//高亮title
            highlightBuilder.field("attachment.content");
            highlightBuilder.preTags("<span style='color:red'>").postTags("</span>");//高亮标签
            //设置高亮
            searchSourceBuilder.highlighter(highlightBuilder);
            //设置页大小
            searchSourceBuilder.size(10000);
            //指定索引
            Search search = new Search.Builder(searchSourceBuilder.toString())
                    .addIndex("book")
                    .build();
            SearchResult result = null ;
            try {
                result = jestClient.execute(search);
                System.out.println("本次查询共查到:"+result.getTotal()+"个关键字!"+result.getJsonObject());
                List<SearchResult.Hit<EsFileInfo,Void>> hits = result.getHits(EsFileInfo.class);
                return hits.size();
            } catch (IOException e) {
                e.printStackTrace();
                return new ArrayList<>().size();
            }
        }
    }
    
    
    
    import com.google.gson.annotations.SerializedName;
    import org.apache.poi.hmef.Attachment;
    
    import java.util.Map;
    
    /**
     * es查询出的文件信息结果类
     */
    public class EsFileInfo {
    
        @SerializedName("FILE_ID")
        private String file_id;
    
        @SerializedName("FILE_NAME")
        private String file_name;
    
        @SerializedName("FILE_SAVE_NAME")
        private String file_save_name;
        //编译成另一个名字
        @SerializedName("attachment")
        private EsDoc esDoc;
    
        public String getFile_id() {
            return file_id;
        }
    
        public void setFile_id(String file_id) {
            this.file_id = file_id;
        }
    
        public String getFile_name() {
            return file_name;
        }
    
        public void setFile_name(String file_name) {
            this.file_name = file_name;
        }
    
        public String getFile_save_name() {
            return file_save_name;
        }
    
        public void setFile_save_name(String file_save_name) {
            this.file_save_name = file_save_name;
        }
    
        public EsDoc getEsDoc() {
            return esDoc;
        }
    
        public void setEsDoc(EsDoc esDoc) {
            this.esDoc = esDoc;
        }
    }
    
    package com.pridecn.file.domain;
    
    import com.google.gson.annotations.SerializedName;
    
    /**
     * 文件实体附件类
     */
    public class EsDoc {
    
        //    @SerializedName("attachment.author")
        private String author;
    
        //    @SerializedName("attachment.content")
        private String content;
    
        //    @SerializedName("attachment.date")
        private String date;
    
        public String getAuthor() {
            return author;
        }
    
        public void setAuthor(String author) {
            this.author = author;
        }
    
        public String getContent() {
            return content;
        }
    
        public void setContent(String content) {
            this.content = content;
        }
    
        public String getDate() {
            return date;
        }
    
        public void setDate(String date) {
            this.date = date;
        }
    }
    

    QueryBuilders的几个分词方法的区别:


        /**
         * 默认的standard analyzer分词规则:<br>
         * 去掉大部分标点符号,并以此分割原词为多个词,把分分割后的词转为小写放入token组中。<br>
         * 对于not-analyzed的词,直接把原词放入token组中。<br>
         * matchQuery的机制是:先检查字段类型是否是analyzed,如果是,则先分词,再去去匹配token;如果不是,则直接去匹配token。<br>
         * id=id2,默认分词,id2不分词。<br>
         * 以wwIF5-vP3J4l3GJ6VN3h为例:<br>
         * id是的token组是[wwif5,vp3j4l3gj6vn3h]<br>
         * id2的token组是[wwIF5-vP3J4l3GJ6VN3h]<br>
         * 可以预计以下结果:<br>
         * 1.matchQuery("id", "字符串"),"字符串"分词后有[wwif5,vp3j4l3gj6vn3h]其中之一时,有值。<br>
         * 如:wwIF5-vP3J4l3GJ6VN3h,wwif5-vp3j4l3gj6vn3h,wwIF5,wwif5,wwIF5-6666等等。<br>
         * 2.matchQuery("id2", "wwIF5-vP3J4l3GJ6VN3h"),有值。<br>
         * 特别说明:<br>
         * 在创建索引时,如果没有指定"index":"not_analyzed"<br>
         * 会使用默认的analyzer进行分词。当然你可以指定analyzer。<br>
         * 在浏览器中输入:<br>
         * http://localhost:9200/_analyze?pretty&analyzer=standard&text=J4Kz1%26L
         * bvjoQFE9gHC7H<br>
         * 可以看到J4Kz1&LbvjoQFE9gHC7H被分成了:j4kz1和lbvjoqfe9ghc7h<br>

    ///

    *
         * 默认的standard analyzer分词规则:<br>
         * 去掉大部分标点符号,并以此分割原词为多个词,把分分割后的词转为小写放入token组中。<br>
         * 对于not-analyzed的词,直接把原词放入token组中。<br>
         * termQuery的机制是:直接去匹配token。<br>
         * id=id2,默认分词,id2不分词。<br>
         * 以wwIF5-vP3J4l3GJ6VN3h为例:<br>
         * id是的token组是[wwif5,vp3j4l3gj6vn3h]<br>
         * id2的token组是[wwIF5-vP3J4l3GJ6VN3h]<br>
         * 可以预计以下结果:<br>
         * 1.termQuery("id", "wwif5"),有值。<br>
         * 2.termQuery("id", "vp3j4l3gj6vn3h"),有值。<br>
         * 3.termQuery("id2", "wwIF5-vP3J4l3GJ6VN3h"),有值。<br>


    总结:match query搜索的时候,首先会解析查询字符串,进行分词,然后查询,而term query,输入的查询内容是什么,就会按照什么去查询,并不会解析查询内容,对它分词。QueryBuilders.queryStringQuery(keyWord).field("FILE_NAME")与matchquery相似

     

    展开全文
  • 这一节将介绍搜索功能入口程序TSESearch.cpp的第四步和第五步——检索关键词+结果排序。  其实,检索关键词非常简单,因为已经建立了倒排表mapBuckets,它是一个map结构,检索某个关键词,就是用map的find方法...

            这一节将介绍搜索功能入口程序TSESearch.cpp的第四步和第五步——检索关键词+结果排序。


            其实,检索关键词非常简单,因为已经建立了倒排表mapBuckets,它是一个map结构,检索某个关键词,就是用map的find方法查询(下面代码中的第27),没有什么需要介绍的。也因此,TSE中将检索关键词和结果排序在一起实现,也就是main函数中调用的函数:iQuery.GetRelevantRst(vecTerm, mapBuckets, setRelevantRst)。

    下面就看该函数的源代码,分析TSE中检索关键词和结果排序的实现。TSE的结果排序方法很简单,就是采用的词频(Term frequency)进行排序的,关于词频排序可以到网上搜索TF-IDF词条进行学习,这里不做详细说明。简单说,词频排序就是:网页中某个关键词出现次数(词频)越高,说明该网页与该关键词相关性越高,因而在结果排序中越优。


            下面的代码中加入了详细的注释(以“LB_C”开始的注释为我加入的)进行说明。

    //LB_c: vecTerm中存储的用户查询字串分词以后的关键词,mapBucket为倒排表,setRelevantRst存储最终的查询的结果(里面存储
    // 的是结果网页的docid)
    bool CQuery::GetRelevantRst(vector<string> &vecTerm, 
    	map<string,string> &mapBuckets, 
    	set<string> &setRelevantRst) const
    {
    	//LB_c: 临时存储已经查询的结果
    	set<string> setSRst;
    	bool bFirst=true;
    
    	//LB_c: 分别对vecTerm中的每一个关键词进行查询
    	vector<string>::iterator itTerm = vecTerm.begin();
    	for ( ; itTerm != vecTerm.end(); ++itTerm ){
    
    		//LB_c: setRelevantRst为已查询的结果,将setRelevantRst存入setSRst中,后面将用到。
    		setSRst.clear();
    		copy(setRelevantRst.begin(), setRelevantRst.end(), 
    		inserter(setSRst,setSRst.begin()));
    
    		//LB_c: mapRstDoc是一个用于临时统计的map,string对应一个docID,int是该docID出现的次数(也就是当前关键词在docid
    		// 的网页中出现的次数,也成为"词频",后面将称为"词频"), 后面是根据词频值对搜索结果进行排序的(即关键词出现次数
    		// 越多的网页应该越"优")。
    		map<string,int> mapRstDoc;
    		string docid;
    		int doccnt;
    		//LB_c: 在倒排表中查询关键词(*itTerm)
    		map<string,string>::iterator itBuckets = mapBuckets.find(*itTerm);	
    		//LB_c: 在倒排表中找到了该关键词
    		if (itBuckets != mapBuckets.end()){
    
    			//LB_c: 获取该关键词出现的文档ID列表(即倒排表记录的第二项,忘记了的朋友可以看看第2节中倒排文件的结构)
    			string strBucket = (*itBuckets).second;
    
    			string::size_type idx;
    			idx = strBucket.find_first_not_of(" ");
    			strBucket = strBucket.substr(idx);
    
    			//LB_c: 循环从文档ID列表字符串中获取一个文档ID,并计算词频,插入mapRstDoc中
    			while ( (idx = strBucket.find(" ")) != string::npos ) {
    				docid = strBucket.substr(0,idx);
    				if (docid.empty()) continue;
    				doccnt = 0;	//LB_c: 计算词频
    				//LB_c: 到mapRstDoc中查询该docid是否出现过
    				map<string,int>::iterator it = mapRstDoc.find(docid);
    				//LB_c: 如果docid出现过
    				if ( it != mapRstDoc.end() ){
    				//LB_c: 获取词频((*it).second)加1存入doccnt
    				doccnt = (*it).second + 1;
    				//LB_c: 从mapRstDoc把该条记录删除,下面将重新插入
    				mapRstDoc.erase(it);
    				}
    
    				//LB_c: 将该条记录重新插入到mapRstDoc,其实先删除再插入这条记录的结果就是docid的词频加了1
    				//LB_c: 这里应该有点问题! 如果docid没出现过,那么doccnt的值为0,则插入到mapRstDoc的对应于docid
    				// 的词频0,所以前面doccnt的初值是不是应该为1呢?
    				mapRstDoc.insert( pair<string,int>(docid,doccnt) );
    
    				//LB_c: 去掉分析过的docid更新strBucket,继续分析下一个文档ID
    				strBucket = strBucket.substr(idx+1);
    			}
    
    			//LB_c: 下面这部分是处理strBucket中最后一个docid,因为while循环结束时,最后一个docid还没有处理
    			// remember the last one
    			docid = strBucket;
    			doccnt = 0;
    			map<string,int>::iterator it = mapRstDoc.find(docid);
    			if ( it != mapRstDoc.end() ){
    			doccnt = (*it).second + 1;
    			mapRstDoc.erase(it);
    			}
    			mapRstDoc.insert( pair<string,int>(docid,doccnt) );
    		}
    		//LB_c: 这一部分处理完后,mapRstDoc存储的是一系列docid和该docid的词频。
    
    		// sort by term frequencty
    		//LB_c: 这部分是对刚才的带有词频的文档查询结果mapRstDoc进行了排序,排序结果存入到newRstDoc中。
    		//LB_c: 注意newRstDoc的类型,第一个域为int表示docid的词频,第二个域是string表示docid,第三个域
    		// 是排序规则----以键值(词频)的降序排列,注意newRstDoc是multimap,也就是键值可以重复。
    		multimap<int, string, greater<int> > newRstDoc;
    		map<string,int>::iterator it0 = mapRstDoc.begin();
    		for ( ; it0 != mapRstDoc.end(); ++it0 ){
    			newRstDoc.insert( pair<int,string>((*it0).second,(*it0).first) );
    		}
    
    		//LB_c: 这部分是将当前关键词(*itTerm)的排序查询结果newRstDoc插入到最终的查询结果setRelevantRst中,
    		// 这里要参考前面的关键词查询结果。
    		multimap<int,string>::iterator itNewRstDoc = newRstDoc.begin();	
    		//LB_c: 将最终的查询结果setRelevantRst清空
    		setRelevantRst.clear();	
    		//LB_c: 循环读取newRstDoc中的每一条记录(这些记录是按docid的词频排序的),根据情况插入到最终结果中
    		for ( ; itNewRstDoc != newRstDoc.end(); ++itNewRstDoc ){
    
    			//LB_c: 获取该条记录的docid
    			string docid = (*itNewRstDoc).second;		
    			//LB_c: 如果当前关键词是第一个查询的关键词,则直接插入到结果集中
    			if (bFirst==true) {
    				setRelevantRst.insert(docid);
    				continue;
    			}
    
    			//LB_c: 如果不是第一个关键词查询,则看已查询结果集setSRst中是否有该docid,也就是前面查询的关键词
    			// 有没有出现在docid的网页中。这里也体现了TSE搜索的规则: 只有所有关键词都出现的网页才有效,部分关键
    			// 词出现的网页不作为搜索结果。如果setSRst中有该docid说明docid的网页也包含前面查询的关键词, 则将
    			// docid插入到最终结果集setRelevantRst中。
    			if ( setSRst.find(docid) != setSRst.end() ){	
    				setRelevantRst.insert(docid);
    			}
    		}
    
    		//LB_c: 这里思考一下! 首先将setRelevantRst清空,然后将当前关键词(*itTerm)的排序结果newRstDoc插入到最终结果集
    		// setRelevantRst中。也就是最终的结果排序是以最后一个查询关键词的词频排序的,即最后一个关键词出现次数多的网页
    		// 排在前面。
    
    		bFirst = false;
    	}
    
    	return true;
    }


    这一节之后,关于TSE查询服务子系统的介绍就只剩下最后一节——显示搜索结果了,本来想年前把它写完的,由于明天回家过年了,是在没有时间了,所以只能年后再继续了。回家happy去啦~~ 也预祝各位读者新年快乐,工作顺利~~


    By:

    展开全文
  • 对关键词和概念检索的原理进行分析后,提出了一种基于语义概念检索的向量空间模型攀及该模型与关键词检索结合的检索方法。在不同的检索领域,可以通过瘌整该检索方法中的结合参数达到最好的检索效果。实验结果表明,...
  • ③点击下一步,选择进行数据抽取还是链接抽取,本次采集需要采集列表页中正文的所有文本信息,所以此处需要勾选“抽取链接”-“普通翻页”,如图3: 【图3】 第二步:配置关键词 ①由于在创...
  • 信息检索复习笔记

    万次阅读 2020-12-17 17:14:46
    信息检索复习 第一讲 搜索 IR(信息检索是什么样的学科): 实质上是融合了文本及多媒体检索、数据挖掘、机器学习和自然语言处理的综合学科 为什么要进行信息检索信息过载 搜索 搜索的过程 从大规模非结构化数据...
  • ③点击下一步,选择进行数据抽取还是链接抽取,本次采集需要采集列表页中正文的所有文本信息,所以此处需要勾选“抽取链接”-“普通翻页”,如图3: 【图3】 第二步:配置关键词 ①由于在创建任务时,选择了...
  • 语音关键词检索实验小结

    千次阅读 2016-04-05 12:22:11
    语音关键词检索(KeywordsSearch),是指在连续语音流中检测出一组给定的关键词的过程。与大词汇量连续语音识别(Large Vocabulary Continuous Speech Recognition)相比,语音关键词检索不需要对非关键词的精确识别...
  • 已有方法解决了结果集要求是关于关键词检索结果全集而带来的无检索结果的问题,但非空子集作为结果集有较大冗余。提出了一种基于完全化语义的关键词检索方法,对检索关键词进行语义标准化处理,识别处理后采用不同的...
  • 第五章 信息法与综合性信息检索 目录: 5.1 信息法概述 5.1.1 信息法的概念 从广义上讲,信息法是调整信息活动中产生的各种社会关系的法律规范的总称。 一般来说,信息法由信息资源管理法、政府信息公开法、信息...
  • 医药信息检索

    2020-04-22 19:47:03
    医药信息检索 5.8.1 主要医药检索工具及其发展 1.医药信息检索概况 2.主要医药信息检索工具简介 5.8.2 美国《医药索引》与PubMed数据库 1.美国《医学索引》(Index Medicus,简称IM) ①美国《医学索引》概况 ...
  • 文件中关键词检索

    2009-10-23 10:40:37
    今天做文件中关键词检索时,最开始使用对文件逐行读取,再在该行查找是否包含该词de 方法。在检索一个关键词时这样没有问题,但是如果不断有新的关键词进行检索,则必须重复以上的步骤,继续逐行读取,相当的浪费cpu...
  • 这种基于领域本体的混合信息检索模型融合关键词检索和语义检索的优势,弥补各自的不足,以改善检索性能。将其应用于计算机网络领域,将基于领域本体的混合信息检索模型与传统的关键词检索模型进行对比实验,结果表明...
  • 全文检索概念;2. 全文检索引擎 ElasticSearch;3. 安装 ElasticSearch 以及中文分词插件 IK;3.1 安装 ElasticSearch7;3.2 安装 elasticsearch-head;3.3 ElasticSearch 设置密码;3.4 安装中文分词插件 IK;4. ...
  • 信息检索小技巧,大学问
  • Django Haystack 全文检索关键词高亮

    千次阅读 2018-07-31 15:26:09
    对于一个搜索引擎来说,至少应该能够根据用户的搜索关键词对搜索结果进行排序以及高亮关键字。 Django Haystack 简介  django-haystack 是一个专门提供搜索功能的 django 第三方应用,它支持 Solr、Elastic...
  • 信息检索专题复习

    万次阅读 2017-06-20 16:06:49
    信息检索复习重点,山东大学信息检索考前独家整理资料。
  • 算法中最主要的是用到了gensim.models.doc2vec将信息存储成词典进行建模并将信息文件转存到数据库中供其他代码使用。因为注释写的比较清晰。所以逻辑不再赘述,直接上代码看看就知道啦~因为在前面的算法中已经对...
  • Django REST framework实现关键词检索

    万次阅读 2017-08-18 22:25:47
    Django REST framework实现关键词检索 注:下文需要使用Django REST framework中的 API,包括viewsets、serializer等,对这些API本文不作讨论,如果想了解API的具体使用,请见Django REST官网。 如果你对Django ...
  • 信息检索

    2017-03-15 19:38:47
    信息检索查询主要用关键词,没有复杂的结构。 主题模型:一个文本文档集的主题可以用词汇表上的概率分布建模。文件类型检测 语言检测 检测文件语言类型检测特定字符 使用split()对文本内容进行区分,区分不同...
  • 信息检索笔记(一):布尔检索

    千次阅读 2018-04-18 13:04:26
    信息检索导论》学习笔记一、布尔检索二、倒排索引三、索引优化1、布尔索引模型概述布尔模型:对于关键词表示的文档使用布尔查询表达式进行查询,当且仅当文档满足布尔表达式时才将其检索出来,二值匹配,是或不是2...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 57,897
精华内容 23,158
关键字:

信息检索关键词检索