精华内容
下载资源
问答
  • excel中创建索引目录

    千次阅读 2016-12-03 14:42:34
    创建索引目录
    定义名称为“索引目录”:=INDEX(GET.WORKBOOK(1),ROW(Sheet1!A1))&T(NOW())
    

    输入公式:=IFERROR(HYPERLINK(索引目录&"!A1",MID(索引目录,FIND("]",索引目录)+1,99)),"")

    就能得到本工作簿中的所有工作表名称,并且点击表名称可以快速跳转。


    关键函数说明:

    (1)index(array,row_num,column_num),例如INDEX(A2:C6,2,3)返回A2到C6区域的第二行第三列的值。

    (2)GET.WORKBOOK(1),提取工作簿中的工作表名。

    (3)ROW(Sheet1!A1)返回行数

    (4)T(NOW())判断是否为文本格式。

    (5)IFERROR(value, value_if_error),公式意思是判断value的值是否正确,如果正确则返回value的结果,否则返回“value_if_error”字符

    (6)HYPERLINK()跳转到指定工作表的单元格,例如:HYPERLINK("http://jingyan.baidu.com/","百度经验")

    (7)MID()一个字符串中截取出指定数量的字符,例如:Mid("VisualBasic",0,12)

    (8)find(find_text,within_text,start_num)用来对原始数据中某个字符串进行定位,以确定其位置。

    Find_text 是要查找的字符串。

    Within_text 是包含要查找关键字的单元格。就是说要在这个单元格内查找关键字。

    Start_num 指定开始进行查找的字符数。比如Start_num为1,则从单元格内第一个字符开始查找关键字。如果忽略 start_num,则假设其为 1。

    展开全文
  • 目的:公司最近要求建立对数据库内多表的索引文件,来实现对数据库数据处理的全文检索。 表有多个,内容风别是不同表内的字段。选用了IK分词Lucene实现。 多线程创建索引 多区域联合查询索引

    目的:公司最近要求建立对数据库内多表的索引文件,来实现对数据库数据处理的全文检索
    表有多个,内容风别是不同表内的字段。选用了IK分词和Lucene实现。中间封装方法很简单,所以就很简单的掠过了
    步骤基本为:1.数据库提取数据转为已实例化的对象。
    2.将实例化的对象,存索引。此处,是一个字段即为一个Field .基本为:document.add(new StringField(“这里实例化对象的属性(即字段名)”, “字段值”, Store.YES));这里的StringField,即在新版LUC内是只存储不对其分词但将其作为索引的建立索引方式。而TextField则是存储索引,且对其分词且索引。还有StoreField则是只存储不索引不分词。
    3.写提交indexWriter每1000次提交一次。
    先上代码。(很抱歉不大会用这个写博客,就先这么写上了。改天再研究)

    /**
         * 循环多线程创建索引
         */
        @Override
        public void CreateIndexFullSearch() {
            ExecutorService executor = Executors.newCachedThreadPool();
            // 获得所有源表名
            Set<String> tableSourceList = FieldsTranslator.signInfoMap.keySet();
         //因为此处是自己创建的一个翻译类内的内容,MAp(“数据库内的表名(也可以称之为数据库转存对象的对象名)”,“中文翻译,例如基本信息”)
         //此处的遍历循环创建索引,采用线程池,加快其建立索引的速度。
            for (String tablename : tableSourceList) {
                CreateIndexSearch myThread = new CreateIndexSearch(tablename);
                executor.execute(myThread);
            }
            executor.shutdown();
        }
    
    
        public class CreateIndexSearch extends Thread {
    //因为在创建所以的时候需要传表名来获取该表内容的存储位置及该表内字段,但在线程重写的Run方法内是无参的,所以我们需要在内部类创建的时候就传入这个在内部可调用的参。
            private String tableSource;
            /**
             * @param tableSoure
             */
            public CreateIndexSearch(String tableSource) {
                super();
                this.tableSource = tableSource;
            }
            /**
             * @return the tableSource
             */
            public String getTableSource() {
                return tableSource;
            }
            /**
             * @param tableSource
             *            the tableSource to set
             */
            public void setTableSource(String tableSource) {
                this.tableSource = tableSource;
            }
    //上面这部分的构造其实只要有类构造方法就行,但下部的G/S方法涉及到下面的值获取。
            /**
             * 用于创建给定来源表的索引
             * 
             * @param tableSource
             * @throws IOException
             */
            public void run() {
                // 存放路径 此处的存放路径也保存在翻译类的静态map,需要通过表名去获取到这个地址。
                String INDEX_DIR = FieldsTranslator.IndexDirMap.get(tableSource);(“D://Lucnen/不同的表有不同的存储位置”)在不同的分布上采用不同的获取。
                // 分词器 选择IK分词器 中文分词一般更偏向ANSJ,但ANS级对含英文的数字串符的分词对项目而言并不理想。所以在实验了多个分词器后,IK虽然对名字的分词超乎我想象的渣,但正向最大切分还是比较适合项目。
                IKAnalyzer analyzerT = new IKAnalyzer(true);
                // 表内数据  这里是一个封装的方法,旨在获取表内数据的List,这个List一般形式为List<obj> 
                List<?> indexList = getIndexList(tableSource);
                // 表内字段 也是方法,其实是从静态map<"字段名(name)","字段名的中文(姓名)">获取到字段的名字。
                Set<String> propertyName = getpropertyName(tableSource);
                // 标记字段 这是我用来获取表名的翻译maP<"表名(User)","表的中文(用户表)">
                String signInfo = FieldsTranslator.signInfoMap.get(tableSource);
                Directory dir = null;
                try {
                    dir = FSDirectory.open(new File(INDEX_DIR));
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_47,
                        analyzerT);
                IndexWriter indexWriter = null;
                try {
                    indexWriter = new IndexWriter(dir, config);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                for (int i = 0; i < indexList.size(); i++) {
                    Document document = new Document();
                    document.add(new StringField("归属类", tableSource, Store.YES));
                    document.add(new TextField("标注", signInfo, Store.YES));
                    for (String key : propertyName) {
                        // 判断该搜索域是否需要索引,默认不索引 
                        if (getsearchRegion(key)) {
    //这里的这个是翻译类,就是你表内存的数据可能用一些英文或者数字来标记,比如0和1来表示男和女,这里是将它们转为中文。
                            // 修改需要索引的就诊类型的表达字符,将该值改为汉字表达
                            String Str = getFieldValueByName(key, indexList.get(i))
                                    .replaceAll(" ", "");
                            document.add(new StringField(key, ValueTranslator
                                    .TranslterStr(key, Str), Store.YES));
                        } else {
                            // 修改需要索引的就诊类型的表达字符,将该值改为汉字表达
                            String Str = getFieldValueByName(key, indexList.get(i))
                                    .replaceAll(" ", "");
                            document.add(new TextField(key, ValueTranslator
                                    .TranslterStr(key, Str), Store.YES));
                        }
                    }
                    try {
                        indexWriter.addDocument(document);
    //这里其实是利用IndexWrite的锁机制,让他开闭锁的频率变为每1000个Doc再上提。
                        if (i % 1000 == 0) {
                            indexWriter.commit();
                        }
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
    
    
                }
                try {
                    indexWriter.commit();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                try {
                    log.info(signInfo + "索引文件创建完毕!");
                    indexWriter.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
    
    
            /**
             * 该方法用以获取表内信息并输出
             * 
             * @param tableSource来源表名
             */
            private List<?> getIndexList(String tableSource) {
                List<?> indexList = new ArrayList<>();
                switch (tableSource) {
                case "ClinicalDocumentVo":
                    // 临床信息表内数据
                    indexList = createIndexClinicalDocumentVoDao
                            .getClinicalDocumentVo();
                    break;
                        ****省略
                case "PatientInspectionVoB":
                    // 影像表内数据
                    indexList = createIndexVoBDao.getPatientInspectionVoB();
                    break;
    
                default:
                    log.info("获取" + tableSource + "表内数据时失败,请检查。");
                    break;
                }
                return indexList;
            }
    
    
            /**
             * 私有方法:用于通过属性得到属性值
             * 自己写着玩的一个方法,实例化的一个对象,通过对象属性来获取到这个对象的属性值
             * @param fieldName
             * @param o
             * @return
             */
            private String getFieldValueByName(String fieldName《属性名》, Object o《对象名》) {
                String firstLetter = fieldName.substring(0, 1).toUpperCase();
                String getter = "get" + firstLetter + fieldName.substring(1);
                Method method = null;
                try {
                    method = o.getClass().getMethod(getter, new Class[] {});
                } catch (NoSuchMethodException e) {
                    e.printStackTrace();
                } catch (SecurityException e) {
                    e.printStackTrace();
                }
                Object value = null;
                try {
                    if (method != null) {
                        value = method.invoke(o, new Object[] {});
                    } else {
                        log.info("通过属性名获取属性值时发生错误");
                    }
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                } catch (IllegalArgumentException e) {
                    e.printStackTrace();
                } catch (InvocationTargetException e) {
                    e.printStackTrace();
                }
                return value + "";
            }
    
    
            /**
             * 该方法用于获取表内字段
             *这方法就   ****略
             * @param tableSource
             * @return
             */
    
    
            /**
             * 判断该域是否需要只存储不索引
             * 略****
             * @param
             * @return
             */
            ******
        }

    创建索引就差不多这个样子。上面我注释大概应该算作很详细了。
    下面是索引的搜索部分。

         public ScoreDoc[] FullSearchAll(String text) throws IOException,
                ParseException {
            ScoreDoc[] hitAll = null;
            IKAnalyzer analyzerT = new IKAnalyzer(true);
            // 此处域项暂未添加更多功能 因为索引存在不同的域 我们使用multiReader来同步读取  此处类似分布式索引。
    /*confirmRegion(“”);这个方法就是传出一个打开所有DIR的readerj集合   我在想法曝出,只是因为太多所以就重写了*/
            IndexReader[] reader = confirmRegion(“”);
    //MultiReader 其实以前常用的一般是MultiSearch 自带线程的p**MultiSearch(忘了叫啥来着,请自行百度),但是4.0之后就被干掉了。不过这里的MultiReader其实在速度上得到了很大提升,在处理千万级别索引时,查询速度大概在1秒不到这个样子。这里的分布读取是我需要的。
            MultiReader multiReader = new MultiReader(reader);
            String[] searchRegion = getsearchRegion();
            IndexSearcher isearcher = new IndexSearcher(multiReader);
    //这里的Search其实也有很多,只是比较Luc近期的方法,感觉IndexSearch更适合。
    //这里是多字段多内容的联合查找方式。 
            MultiFieldQueryParser parser = new MultiFieldQueryParser(
                    Version.LUCENE_47, searchRegion, analyzerT);
    //原先是准备在这边运用booleanQuery等不同类型的Query做一个不同程度的索引 ,其实也是已经作出了包括OCCMust及OCCShould等方式的维度查询,还有RangeQuery的时间节点筛选和值筛。但都被客户一句话干掉了(哦发火 谢特) 然后这里就是阉割版的。
            Query queryShould = parser.parse(text.replaceAll("[\\pZ]|[\\pP]", ""));
            hitAll = isearcher.search(queryShould, null, 1000).scoreDocs;
            return hitAll;
        }
    
    
        /**
         * 优先匹配基本信息的全文检索
         * 
         * @param 关键字
         *            页码 每页显示数目
         */
        @SuppressWarnings("unchecked")
        public List<FullSearchInfo> FullSearch(String text, String pageNum,
                String pageSize) throws IOException, ParseException {
            List<FullSearchInfo> tableinfo = new ArrayList<FullSearchInfo>();
            IndexReader[] reader = confirmRegion(allPath);
            MultiReader multiReader = new MultiReader(reader);
            IndexSearcher isearcher = new IndexSearcher(multiReader);
            ScoreDoc[] b = FullSearchAll(text);
            ScoreDoc[] hitAll = null;
            hitAll = b;
            // 查询分页 分页这部分其实我并不喜欢整在外头,但是,客户说,我这一段太长了。你特么闲着没事看啥源码? 出于。。。。我在获取查询总条数时加了一个浪费小效率的二次查询的小改动。等二版改效率再见。
            int start = (Integer.parseInt(pageNum) - 1)
                    * Integer.parseInt(pageSize);
            int end = Integer.parseInt(pageNum) * Integer.parseInt(pageSize);
            for (int i = start; i < end; i++) {
            *******后台输出****因为涉及到部分东西,然后就不显示了。
        }

    以上,其实已经差不多了吧?
    嗯,其实Luc经过这么多次改版,其方法改变了很多,也是花了几个晚上统统试了一遍,当然也有部分方法看着API都没能搞掂,也是醉的不行。
    可能理解有些浅显,一想对初学的人可以是一个小参考。所以还是写了,当然,相较于打字更喜欢动笔的我写的很少,不懂就私信吧。
    QS568356@163.com 回复邮件分时间。着急可以红名

    展开全文
  • lucene全文搜索之一中讲解了lucene开发搜索服务的基本结构,本章将会讲解如何创建索引器、管理索引目录和中文分词器的使用。 包括标准分词器,IKAnalyzer分词器以及两种索引目录的创建 luncene5.5.3集合jar包下载...

    前言:

    lucene全文搜索之一中讲解了lucene开发搜索服务的基本结构,本章将会讲解如何创建索引器、管理索引目录和中文分词器的使用。

    包括标准分词器,IKAnalyzer分词器以及两种索引目录的创建

    luncene5.5.3集合jar包下载地址:http://download.csdn.net/detail/eguid_1/9677589

    、创建索引器

    创建lucene的索引器需要两个要素:一个是分词器,一个是索引目录。

    那么就让我们创建这两个实例


    1、创建分词器

    (1)创建lucene内置分词器

    /**
    	 * 创建内置分词器
    	 * @param stopwords CharArraySet停词
    	 * @param stopWords Reader停词
    	 * @param 都为null则返回默认分词器
    	 * @return 分词器
    	 * @throws IOException
    	 */
    	public Analyzer createAnalyzer(CharArraySet stopwords, Reader stopWords) throws IOException {
    		StandardAnalyzer analyzer = null;
    		if (stopwords != null) {
    			analyzer = new StandardAnalyzer(stopwords);
    		} else if (stopWords != null) {
    			try {
    				analyzer = new StandardAnalyzer(stopWords);
    			} catch (IOException e) {
    				throw e;
    			}
    		} else {
    			analyzer = new StandardAnalyzer();
    		}
    		return analyzer;
    	}

    (2)创建IKAnalyzer分词器

    IKAnalyzer源码及配置使用请查看使用IK Analyzer中文分词器(修改IK Analyzer源码使其支持lucene5.5.x)

    /**
    	 * 创建IKAnalyzer分词器
    	 * @param isSmart -true:智能分词,false:最细粒度分词
    	 * @return
    	 */
    	public Analyzer createAnalyzer(boolean isSmart)
    	{
    		return new IKAnalyzer(isSmart);
    	}

    2、创建索引目录

    索引目录分为文件目录和内存虚拟目录

    (1)创建索引文件目录

    /**
    	 * 创建文件目录
    	 * @param path -路径
    	 * @param lockFactory -文件锁
    	 * @return Directory -索引目录
    	 * @throws IOException -路径错误导致IO异常
    	 */
    	public Directory createDirectory(Path path, LockFactory lockFactory) throws IOException {
    		FSDirectory dir = null;
    		// 打开目录
    		try {
    			if (lockFactory == null)
    				dir = FSDirectory.open(path);
    			else
    				dir = FSDirectory.open(path, lockFactory);
    		} catch (IOException e) {
    			throw e;
    		}
    		return dir;
    	}
    	/**
    	 * 创建文件目录
    	 * 路径格式:“d:”,“dir”,“search” 等于 “d://dir/search”
    	 * @param lockFactory -文件锁
    	 * @param first -路径
    	 * @param more -路径
    	 * @return Directory -索引目录
    	 * @throws IOException
    	 */
    	public Directory createDirectory(LockFactory lockFactory,String first,String ...more) throws IOException{
    		Path path=FileSystems.getDefault().getPath(first,more);
    		return createDirectory(path,lockFactory);
    	}


    (2)创建内存虚拟索引目录

    public RAMDirectory createRAMDirectory(LockFactory lockFactory, FSDirectory dir, IOContext context)
    			throws IOException {
    		RAMDirectory ramDirectory = null;
    		if (lockFactory != null) {
    			ramDirectory = new RAMDirectory(lockFactory);
    		} else if (dir != null && context != null) {
    			try {
    				ramDirectory = new RAMDirectory(dir, context);
    			} catch (IOException e) {
    				throw e;
    			}
    		} else {
    			ramDirectory = new RAMDirectory();
    		}
    		return ramDirectory;
    	}


    创建完了分词器和索引目录,那么我们就可以通过这两个要素构建索引配置

    3、创建索引配置

    /**
    	 * 根据分词器创建索引配置
    	 * @param analyzer -分词器可以选择默认也可以使用IK或者庖丁
    	 * @param openMode -模式(有三种模式:OpenMode.APPEND -增加;OpenMode.CREATE -创建;OpenMode.CREATE_OR_APPEND -创建和增加;)
    	 * @param commitOnClose -是否关闭时才提交索引
    	 * @return
    	 */
    	public IndexWriterConfig createIndexConf(Analyzer analyzer,OpenMode openMode,boolean commitOnClose) {
    		IndexWriterConfig indexConf = null;
    		if (analyzer != null) {
    			indexConf = new IndexWriterConfig(analyzer);
    			indexConf.setOpenMode(openMode);//一般使用OpenMode.CREATE_OR_APPEND
    			indexConf.setCommitOnClose(commitOnClose);//默认是true:索引器关闭后才提交索引,false就是手动提交索引
    		}
    		return indexConf;
    	}


    创建完索引配置,就可以根据配置创建一个索引器了

    4、根据配置和索引目录创建索引

    /**
    	 * 创建索引器
    	 * @param dir -索引目录
    	 * @param indexConf -索引配置
    	 * @return IndexWriter 返回索引器
    	 * @throws IOException 
    	 */
    	public IndexWriter createIndex(Directory dir,IndexWriterConfig indexConf) throws IOException {
    		IndexWriter indexWriter =null;
    		try {
    			indexWriter=new IndexWriter(dir, indexConf);
    		} catch (IOException e) {
    			throw e;
    		}
    		return indexWriter;
    	}

    有了索引器,我们就可以对索引进行增删查了(没有改

    5、索引器的增删改

    重要:lucene中索引只有增删查的API,没有更新/改的API,如果想要更新/改 索引必须先删掉索引再添加

    /**
    	 * 增加索引
    	 * @param indexWriter
    	 * @param doc
    	 * @return
    	 */
    	public boolean addIndex(IndexWriter indexWriter, Document doc) {
    		boolean ret = true;
    		if (indexWriter != null && indexWriter.isOpen() && doc != null) {
    			try {
    				indexWriter.addDocument(doc);
    				indexWriter.commit();//commitOnClose设置为false,这里就需要手动提交,否则关闭索引器后不会自动提交
    			} catch (IOException e) {
    				ret = false;
    			}
    		}
    		return ret;
    	}
    	/**
    	 * 根据词语删除索引
    	 * @param indexWriter
    	 * @param terms
    	 * @return
    	 */
    	public boolean removeIndex(IndexWriter indexWriter, Term ...terms){
    		boolean ret = true;
    		if (indexWriter != null && indexWriter.isOpen() && terms != null) {
    			try {
    				indexWriter.deleteDocuments(terms);
    				
    			} catch (IOException e) {
    				ret = false;
    			}
    		}
    		return ret;
    	}
    	/**
    	 * 删除搜索结果对应的索引
    	 * @param indexWriter
    	 * @param querys
    	 * @return
    	 */
    	public boolean removeIndex(IndexWriter indexWriter, Query ...querys){
    		boolean ret = true;
    		if (indexWriter != null && indexWriter.isOpen() && querys != null) {
    			try {
    				indexWriter.deleteDocuments(querys);
    			} catch (IOException e) {
    				ret = false;
    			}
    		}
    		return ret;
    	}


    不需要使用索引,也可以这样关闭索引

    6、关闭索引器

    /**
    	 * 关闭索引器
    	 * @param indexWriter
    	 * @param commitOnClose -关闭时是否提交索引(防止正在创建的索引没有及时提交)
    	 * @return true:关闭成功:关闭失败
    	 */
    	public boolean close(IndexWriter indexWriter, boolean commitOnClose) {
    		boolean ret = false;
    		if (indexWriter != null && indexWriter.isOpen()) {
    			try {
    				if (commitOnClose) {
    					indexWriter.flush();
    					indexWriter.commit();
    				}
    				indexWriter.close();
    				ret=true;
    			} catch (IOException e) {
    				try {
    					//防止提交时异常导致索引关闭失败,再次尝试关闭
    					indexWriter.close();
    					ret=true;
    				} catch (IOException e1) {
    					ret=false;
    				}
    			}
    		}
    		return ret;
    	}



    下一章: 

    lucene全文搜索之三:生成索引字段,创建索引文档(给文档/字段加权)基于lucene5.5.2






    展开全文
  • vba脚本excel动态创建索引目录

    千次阅读 2016-01-11 14:12:45
    '''动态创建目录表:其他表内容的索引,从其他表的每行中拷贝指定的列,拷贝后第一个单元格超链接到所拷贝的行 Function makeContent() contentSheetName = "content" '清空content表内容 Sheets...

           上代码:

    '''动态创建目录表:其他表内容的索引,从其他表的每行中拷贝指定的列,拷贝后第一个单元格超链接到所拷贝的行
    Function makeContent()
       
       contentSheetName = "content"
       '清空content表内容
       Sheets(contentSheetName).Select
       Sheets(contentSheetName).Rows("2:65535").Delete   '一张表最多只能有65535行
       
       '需要从其他表中拷贝的列,如果用例表不同,则修改这个数组
       copyCol = Array(1, 2, 4, 8, 10)
       
       '循环遍历除"content"之外的其他表
        For Each sh In Worksheets
        If sh.Name <> contentSheetName Then
            '从第二行开始拷贝,因为第一行是表头
            For r = 2 To usedRowCnt(sh)
                If sh.Cells(r, 1).Value <> "" Then
                    '计算“content”表中当前已使用的行数
                    curTotalRows = usedRowCnt(Sheets(contentSheetName))
                
                    '循环拷贝每一列的数据
                    i = 0
                     For Each col In copyCol
                        i = i + 1
                        Sheets(contentSheetName).Cells(curTotalRows + 1, i).Value = sh.Cells(r, col).Value
                     Next
                'content中的行的第一格单元格设置超链接,链接到所拷贝表的行
                Sheets(contentSheetName).Hyperlinks.Add Cells(curTotalRows + 1, 1), Address:="", SubAddress:=sh.Name & "!A" & r
                
                End If
            
            Next
            
        End If
    
        Next
       
        Debug.Print "make conten success"
    
    End Function

    如果希望excel文件每次打开时更新目录表,那么在VB编辑器中,双击“ThisWorkBook”,右边代码中写上如下代码:

    Private Sub Workbook_Open()
        Call makeContent
    
    End Sub
    

    PS:excel表及vba脚本上传到csdn了:



    展开全文
  • hive 创建索引

    万次阅读 2019-11-28 15:33:34
    文章目录hive索引创建索引加载索引数据查看索引表中数据删除索引查看索引参考 hive索引 索引是hive0.7之后才有的功能,创建索引需要评估其合理性,因为创建索引也是要磁盘空间,维护起来也是需要代价的 创建索引 ...
  • ES--Kibana相关操作创建索引和Mapping

    万次阅读 2019-01-18 15:09:20
    文章目录创建索引创建别名创建Mapping 创建索引 kibana 使用如下命令进行创建索引内容。 PUT test_index/ 创建别名 POST _aliases { "actions": [ { "add": { "index": "...
  • Lucene3.0创建索引

    2011-06-14 14:35:51
    Lucene3.0创建索引 读取目录下的所有txt文档格式的文件,然后生成一个索引文件到某目录下!
  • 二、创建索引 三、管理索引(删除索引) 四、全文索引和目录 五、聚集索引非聚集索引 一、索引概述 索引:是一个单独的、物理的数据库结构,它是某个表中一列或若干类的集合相应的指向表中物理标识这些值的...
  • 一步一步跟我学习lucene是对近期做lucene索引的总结,
  • 在执行CREATE TABLE语句时可以创建索引,也可以单独用CREATE INDEX 或 ALTER TABLE来为表增加索引。 1.ALTER TABLE可以用来创建普通索引、UNIQUE索引或PRIMARY KEY索引。 2.CREATE INDEX可对表增加普通索引或UNIQUE...
  • lucene创建索引

    千次阅读 2015-12-15 00:29:30
    上篇博客写了信息检索的基本知识lucene架构,这篇博客记录一下如何在eclipse中创建索引. 1.lucene下载. 下载地址:http://archive.apache.org/dist/lucene/java/. lucene不同版本之间有不小的差别,这里下载的是...
  • 创建索引 一、创建词法分析器 二、创建索引存储目录 三、创建索引写入器 四、将内容存储到索引 关键字查询 一、创建索引存储目录读取器 二、创建索引搜索器 三、解析查询 四、获取结果
  • vba动态创建目录索引

    2016-01-11 14:51:00
    vba动态创建excel的目录索引表,适用场景:软件测试用例的列很多如10几列时,其中某几列可能不是很重要,想一眼看穿用例比较麻烦,所以建立个索引表,方便用例查看,介绍的csdn博客地址:...
  • 索引1.1 原理1.2 创建索引1.2.1 创建主键索引1.2.2 唯一索引的创建1.2.3 普通索引的创建1.2.4 全文索引的创建1.3 查询索引1.4 删除索引1.5 索引创建的规则 1.索引   索引是对数据库表中一列或多列的值进行排序的...
  • MySQL创建表的时候创建索引

    万次阅读 2018-04-08 11:31:29
    )[-]创建表的时候创建索引创建普通索引创建唯一性索引创建全文索引创建单列索引创建多列索引创建空间索引要想使用索引提高数据表的访问速度,首先,需要创建一个索引,创建索引的方式,有三种。创建表的时候,创建...
  • 索引的作用就类似于书本的目录,新华字典的拼音,偏旁部首的首查字,可以快速的检索到需要 的内容,mysql在300万条记录性能就下降了,虽然mysql官方文档说达500万~800万,所以当数据 达到几百万的时候,那么索引就很...
  • Lucene创建索引

    千次阅读 2016-04-26 17:09:35
    Lucene创建索引对索引的文档进行增删改查拷贝Maven依赖http://mvnrepository.com/ <groupId>junit <artifactId>junit <version>4.12 </de
  • 索引分类: 主键索引: 不能为null,唯一索引可以为null 单值索引: 单列,每个表...创建索引: 一、create 索引类型 索引名 on 表 单值: create index dep_index on tb(dept); 唯一 create unique index...
  • Mysql创建索引注意事项

    千次阅读 2020-03-08 08:40:39
    介绍了mysql索引相关的基础知识及索引自身搜索的规则锁机制,并列了一些创建索引的一些优化策略或小tips...
  • 简单说两句,Lucene现在高版本的教程很少...大致说一下Lucene就是通过创建索引这个类似书目录那样的东西来提升查询效率的一个框架,所谓索引我理解就是将文档等数据源的不同组成部分的指示标志,索引会指引使用者快速找
  • Hive创建索引

    万次阅读 2013-12-20 09:52:27
    写在前面的话,学Hive这么久了,发现目前国内还没有一本完整的介绍Hive的... Hive的数据分为表数据元数据,表数据是Hive中表格(table)具有的数据;而元数据是用来存储表的名字,表的列分区及其属性,表的属性
  • 索引的介绍 索引在MySQL中也叫做“键”,它是一个特殊的文件,它保存着数据表里所有记录的位置信息,更通俗的来说,数据库索引好比是一本书前面的目录,能加快数据库的...主键列会自动创建索引 索引的创建: -- ...
  • lzo文件创建索引

    千次阅读 2017-11-14 17:11:00
    lzo文件默认不支持split,创建索引后支持split,这样作为map输入时就可以将文件分割成多个map,否则只能有一个map 创建索引,执行: hadoop jar /usr/hdp/2.2.6.0-2800/hadoop/lib/hadoop-lzo-0.6.0.2.2.6.0-2800....
  • oracle创建索引 查看索引状态

    千次阅读 2017-09-06 10:08:00
    Oracle对象教程:索引(Index)创建使用,索引:对数据库表中的某些列进行排序,便于提高查询效率。 当我们在某本书中查找特定的章节内容时,可以先从书的目录着手,找到该章节所在的页码,然后快速的定位到该页。这种...
  • 为表格创建索引 以下是创建简单的普通单列索引 以下是创建唯一索引 创建组合索引 创建全文索引 创建控件索引 删除索引 为表格创建索引 选择表格,右键、设计 点击索引,输入索引名,选择要添加索引的字段...
  • SQL 创建索引,语法

    千次阅读 2014-06-07 16:10:16
    主键是唯一的,所以创建了一个主键的同时,也就这个字段创建了一个唯一的索引。SQL SERVER将主键默认定义为聚集索引,事实上,索引是否唯一与是否聚集是不相关的,聚集索引可以是唯一索引,也可以是非唯一索引; ...
  • Solr 创建索引

    千次阅读 2014-08-19 10:25:15
    solr-4.9.0/example/solr/collection1是SolrCore的实例目录示例,当建立一个新的SolrCore时,并不是必须拷贝这个目录的所有文件,但推荐这样做。... 这个目录是必需的并且必须包含solrconfig.xmls
  • Office 2007创建目录和索引

    万次阅读 2007-09-15 11:18:00
    Ruiao博客一共14张表,我现在分析到第三张就觉得每次在Office 2007中朝下拉太麻烦,想到书刊的目录,按住Ctrl后就可以直接链接到想看到的内容,上午查了查Word的帮助文档,算是解决了这个问题。Step1: 在文档的...
  • Lucene.Net创建索引

    千次阅读 2013-10-14 21:50:01
    首先创建索引 string indexPath = @"D:\my.net\test";//注意磁盘上文件夹的大小写一致,否则会报错。将创建的分词内容放在该目录下。  FSDirectory directory = FSDirectory.Open(new DirectoryInfo(indexPath), ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 375,064
精华内容 150,025
关键字:

如何创建索引和目录