精华内容
下载资源
问答
  • oracle 全文检索 oracle全文索引 字段检索,匹配字段搜索功能。
  • 我将一篇文章存储在表A的a、b、c字段内,用3个字段存储,并且为a字段建立了一个多字段全文索引(包含a、b、c 3个字段),现在问题来了,我更新a字段的话索引会相应地同步,但是更新b和c字段的数据就无法同步索引,就...
  • 在网上看到oracle全文索引都是对一张表一个字段进行全文检索,我想对个表字段按照关键字的匹配度排序,sql语句如下 select score(1) ,score(2), CDA.AREANAME,CDS.STREETNAME from C_DICT_STREET cds

    http://blog.csdn.net/linfssay/article/details/7679353

    在网上看到oracle全文索引都是对一张表一个字段进行全文检索,我想对多个表多个字段按照关键字的匹配度排序,sql语句如下

    select score(1)  ,score(2), CDA.AREANAME,CDS.STREETNAME from  C_DICT_STREET cds  left join C_DICT_ADMINAREA cda on CDA.C_DICT_ADMINAREA_ID = CDS.C_DICT_ADMINAREA_ID
     where CONTAINS (CDA.AREANAME, p_split_chinese('苏州沧浪胥江北区'),2) > 0   or
     CONTAINS (CDS.STREETNAME, p_split_chinese('苏州沧浪胥江北区'),1) > 0
    order by score(1) desc ,score(2) desc;

    这里的score是oracle全文检索对关键字的匹配程度所计算的数,contains里的最后一个参数“1”和“2”就是对这个数的一个标识。

    展开全文
  • mysql多字段唯一索引

    千次阅读 2018-07-27 16:58:00
    项目中需要用到联合...例如:user表中有userID,userName两个字段,如果不希望有2条一模一样的记录,需要给user表添加字段的联合唯一索引: alter table user add nuique index(user_id,user_name); 例如: alte...

    项目中需要用到联合唯一索引:

    例如:有以下需求:每个人每一天只有可能产生一条记录:处了程序约定之外,数据库本身也可以设定:

    例如:user表中有userID,userName两个字段,如果不希望有2条一模一样的记录,需要给user表添加多个字段的联合唯一索引:

    alter table user add nuique index(user_id,user_name);

    例如:

    alter table user_daily_money_info add unique index agd(user_account_id,game_id,daily_date);

     

    alter table user_daily_money_info add unique key agdkey(user_account_id,game_id,daily_date);

    这样如果向表中添加相同记录的时候,会返回一下错误信息:


    2还有一种情况就是,我们需要为以前的表 创建这个索引,有可能以前的数据中存在重复的记录 那怎么办呢?

     

    alter ignore table user add unique index(user_id,user_name);
    它会删除重复的记录(别怕,会保留一条),然后建立唯一索引,高效而且人性化.


     

    查看索引  show index from 数据库表名
    alter table 数据库add index 索引名称(数据库字段名称)
    PRIMARY KEY(主键索引)
    ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 
    UNIQUE(唯一索引)
    ALTER TABLE `table_name` ADD UNIQUE (`column`) 

    INDEX(普通索引)
    mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` )

    FULLTEXT(全文索引)
    ALTER TABLE `table_name` ADD FULLTEXT ( `column` )

    多列索引
    ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )
    1.普通索引。
    这是最基本的索引,它没有任何限制。它有以下几种创建方式:
    (1)创建索引:CREATE INDEX indexName ON  tableName(tableColumns(length));如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是  BLOB 和 TEXT 类型,必须指定length,下同。
    (2)修改表结构:ALTER tableName ADD INDEX [indexName] ON (tableColumns(length)) 
    (3)创建表的时候直接指定:CREATE TABLE tableName ( [...], INDEX [indexName] (tableColumns(length)) ;

    2.唯一索引。
    它与前面的”普通索引”类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:
    (1)创建索引:CREATE UNIQUE INDEX indexName ON tableName(tableColumns(length))
    (2)修改表结构:ALTER tableName ADD UNIQUE [indexName] ON (tableColumns(length))
    (3)创建表的时候直接指定:CREATE TABLE tableName ( [...], UNIQUE [indexName] (tableColumns(length));

    3.主键索引
    它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引:CREATE TABLE testIndex(i_testID INT  NOT NULL AUTO_INCREMENT,vc_Name VARCHAR(16) NOT NULL,PRIMARY  KEY(i_testID)); 当然也可以用ALTER命令。

    转载于:https://www.cnblogs.com/snake23/p/9378565.html

    展开全文
  • 字段添加索引

    千次阅读 2019-04-30 12:43:37
    1.添加PRIMARY KEY(主键索引): ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) ; 2.添加UNIQUE(唯一索引): ALTER TABLE `table_name` ADD UNIQUE (`column`) ; 3.添加INDEX(普通索引) : ALTER ...

    1.添加PRIMARY KEY(主键索引):

    ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) ;

    2.添加UNIQUE(唯一索引) :

    ALTER TABLE `table_name` ADD UNIQUE ( `column` ) ;

    3.添加INDEX(普通索引) :

    ALTER TABLE `table_name` ADD INDEX index_name ( `column` );

    4.添加FULLTEXT(全文索引) :

    ALTER TABLE `table_name` ADD FULLTEXT ( `column`) ;

    5.添加多列索引:

    ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` );

    6.删除索引:

    DROP INDEX index_name ON table_name;

    转自

    展开全文
  • 多字段全文索引和搜索。 每场得分提高。 排名功能可对匹配文档进行排名。 与 > = 6.0.0中默认使用的排名函数相同。 基于的动态。 可配置的分词器和术语过滤器。 具有查询扩展功能的自由文本查询。 占用空间小...
  • 前言:上一章中我们已经实现了索引器的创建,但是我们没有索引文档,本章将会讲解如何生成字段、创建索引文档,给文档加权,给字段加权以及保存文档到索引器目录 一、创建索引文档 索引文档由索引字段和权重值构成,...

    前言:上一章中我们已经实现了索引器的创建,但是我们没有索引文档,本章将会讲解如何生成字段、创建索引文档,给字段加权以及保存文档到索引器目录

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

    一、创建索引文档

    一个索引目录可以放多个索引文档,每个索引文档多个索引字段组成,索引字段由要索引的字段名字段内容以及权重值组成

    1、构建索引字段并加权

    /**
    	 * 创建索引字段
    	 * @param boost
    	 *            -权重值
    	 * @param fieldName
    	 *            - 字段名
    	 * @param statement
    	 *            -内容
    	 * @param fieldType
    	 *            -字段存储类型
    	 * @return
    	 */
    	public Field createField(String fieldName, String statement, FieldType fieldType, Float boost) {
    		Field field = null;
    		if (fieldName != null && statement != null && fieldType != null) {
    			field = new Field(fieldName, statement, fieldType);
    			if (boost != null) {
    				field.setBoost(boost);
    			}
    		}
    		return field;
    	}
    
    	/**
    	 * 创建索引字段
    	 * 
    	 * @param fieldName
    	 * @param reader
    	 * @param type
    	 * @param boost
    	 * @return
    	 */
    	public Field createField(String fieldName, Reader reader, FieldType type, Float boost) {
    		Field field = null;
    		if (fieldName != null && reader != null) {
    			field = new Field(fieldName, reader, type);
    			if (boost != null) {
    				field.setBoost(boost);
    			}
    		}
    		return field;
    	}
    
    	/**
    	 * 创建索引字段
    	 * 
    	 * @param fieldName
    	 * @param tokenStream
    	 * @param type
    	 * @param boost
    	 * @return
    	 */
    	public Field createField(String fieldName, TokenStream tokenStream, FieldType type, Float boost) {
    		Field field = null;
    		if (fieldName != null && tokenStream != null) {
    			field = new Field(fieldName, tokenStream, type);
    			if (boost != null) {
    				field.setBoost(boost);
    			}
    		}
    		return field;
    	}
    
    	/**
    	 * 创建索引字段
    	 * 
    	 * @param fieldName
    	 * @param value
    	 * @param type
    	 * @param boost
    	 * @return
    	 */
    	public Field createField(String fieldName, byte[] value, FieldType type, Float boost) {
    		return value != null ? createField(fieldName, value, 0, value.length, type, boost) : null;
    	}
    
    	/**
    	 * 创建索引字段
    	 * 
    	 * @param fieldName
    	 * @param value
    	 * @param offset
    	 * @param length
    	 * @param type
    	 * @param boost
    	 * @return
    	 */
    	public Field createField(String fieldName, byte[] value, int offset, int length, FieldType type, Float boost) {
    		Field field = null;
    		if (fieldName != null && value != null && type != null) {
    			field = new Field(fieldName, value, offset, length, type);
    			if (boost != null) {
    				field.setBoost(boost);
    			}
    		}
    		return field;
    	}


    2、创建索引文档

    /**
    	 * 创建索引文档
    	 * 
    	 * @return
    	 */
    	public Document createDocument() {
    		return new Document();
    	}

    二、添加字段到索引文档

    	/**
    	 * 把字段存放到索引文档
    	 * 
    	 * @param document
    	 * @param field
    	 * @return
    	 */
    	public Document addFiled(Document document, Field field) {
    		if (field != null) {
    			document.add(field);
    		}
    		return document;
    	}
    	/**
    	 * 批量存放字段到索引文档
    	 * @param document
    	 * @param fields
    	 * @return
    	 */
    	public Document addFiledList(Document document, Field... fields) {
    		if (fields != null && fields.length > 0) {
    			for (Field field : fields) {
    				document.add(field);
    			}
    		}
    		return document;
    	}


    三、给索引器添加索引文档

    使用上一章中的方法把生成的文档添加到索引中

    事实上我们常把索引文档根据不同分类保存到不同的索引目录,再搜索时可以根据不同索引目录进行搜索。

    例如:

    	Analyzer analyzer=createAnalyzer(false);
    	
    	Directory dir=createDirectory(null, "d:","dir","search");
    	
    	IndexWriterConfig conf=createIndexConf(analyzer, OpenMode.CREATE_OR_APPEND, false);
    	IndexWriter index=createIndex(dir, conf);
    	
    	//创建一个文档
    	Document doc=createDocument();
    	 String[] states = new String[] {"欢迎来到eguid的博客", "欢迎大家来到eguid的技术博客", "欢迎大家来到eguid的技术博客,很开心能和大家一起分享开源技术"};
    	//创建字段
    	Field[] fields=createFields("字段名", states, TextField.TYPE_STORED, 1.1f);
    	//批量增加字段到索引文档
    	addFiledList(doc, fields);
    	//把索引文档保存到索引器
    	index.addDocument(doc);
    这样就把添加了一个索引,想要搜索这个索引,那么接下来让我们创建搜索器吧

    下一章:lucene全文搜索之四:创建索引搜索器、6种文档搜索器实现以及搜索结果分析(结合IKAnalyzer分词器的搜索器)基于lucene5.5.2







    展开全文
  • MySQL 之全文索引

    万次阅读 多人点赞 2018-04-14 15:47:56
    最近在复习数据库索引部分,看到了 fulltext,也即全文索引,虽然全文索引在平时的业务中用到的不,但是感觉它有点儿意思,所以花了点时间研究一下,特此记录。 引入 概念 通过数值比较、范围过滤等就可以...
  • 我的数据库表结构如下!... 使用localtion作为where查询判断条件,给localtion字段建立普通索引 ...难道中文字段只能建立全文索引吗? ![没有使用索引](https://img-ask.csdn.net/upload/201502/22/1424589012_661662.png)
  • 全文索引----创建表solr索引

    万次阅读 热门讨论 2016-05-07 21:10:39
     我们在使用solr作为索引服务器时,通常会将个表的字段作为联合索引,对个表快速的数据查询也是solr服务器高效率的体现。这片文章介绍下如何基于个数据表创建索引。  一 无关联表创建索引  1.1 ...
  • mysql为字段索引

    千次阅读 2018-09-14 16:44:46
    1、添加普通索引 ALTER TABLE `table_name` ADD INDEX index_name ( `column` ) 案例:ALTER TABLE ts_storage_partinfo_order_batch ADD INDEX IDX_ISB (id_source_bill); 2、添加主键索引 ALTER TABLE `table...
  • mysql全文索引

    千次阅读 2019-04-24 10:23:53
    旧版的MySQL的全文索引只能用在MyISAM表格的char、varchar和text的字段上。 不过新版的MySQL5.6.24上InnoDB引擎也加入了全文索引,所以具体信息要随时关注官网, 1.1. 创建表的同时创建全文索引 CREATE ...
  • 1、为cht_apps表的META_AID字段添加主键索引(PRIMARY KEY): ALTER TABLE cht_apps ADD PRIMARY KEY (META_AID) 执行结果: 表结构: 一张表只能有一个主键索引,再次添加会报重复主键: 2、为cht_apps表的...
  • MySQL给表里的某个字段建立索引

    千次阅读 2019-04-15 15:29:41
    注:`table_name` 和 `column` 中的``是Esc下方的一个键 ~`,可省略不写``,直接写表名和字段名 1.添加PRIMARY KEY(主键索引): ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2.添加UNIQUE(唯一索引)...
  • 在MySql数据库中,有四种索引:聚焦索引(主键索引)、普通索引、唯一索引以及我们这里将要介绍的全文索引(FUNLLTEXT INDEX)。 全文索引(也称全文检索)是目前搜索引擎使用的一种关键技术。它能够利用【分词技术...
  • 全文检索可以对varchar,text,image型字段进行检索,但一个表最多只能建一个全文索引SQL Server 2000 引入了对存储在 image 列中的这些类型的数据执行全文检索的能力。如果没有全文索引,对字符的模糊查询只能对基表...
  • 前言:本文简单讲述全文索引的应用实例,MYSQL演示版本5.5.24。 Q:全文索引适用于什么场合? A:全文索引是目前实现大数据搜索的关键技术。 至于更详细的介绍请自行百度,本文不再阐述。 ————————————...
  • Oracle自带全文索引

    2017-01-21 22:17:17
    当需要在大量文章中通过关键字搜索文章时,Oracle自带的全文索引对于提高搜索性能非常有帮助,并且使用也很方便。 使用前的准备工作: 1、先查看oracle是否自带有ctxsys用户,如果没有该用户则不能使用全文索引...
  • MySQL使用全文索引(fulltext index) 及中文全文索引使用

    万次阅读 多人点赞 2019-07-24 10:52:56
    全文索引介绍 ----------------------------------------------------------------------------------------------------------------------------- 1.创建全文索引(FullText index) 旧版的MySQL的全文索引只能...
  • alter table 数据库add index 索引名称(数据库字段名称) PRIMARY KEY(主键索引) ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) UNIQUE(唯一索引) ALTER TABLE `table_name` ADD UNIQ
  • MySql全文索引

    千次阅读 2017-09-30 09:21:57
    MySql全文索引 使用索引是数据库性能优化的必备技能之一。在MySQL数据库中,有四种索引:聚集索引(主键索引)、普通索引、唯一索引以及我们这里将要介绍的全文索引(FULLTEXT INDEX)。 全文索引(也称全文检索)是...
  • MySQL全文索引

    千次阅读 2019-01-16 17:20:08
    最近在复习数据库索引部分,看到了 fulltext,也即全文索引,虽然全文索引在平时的业务中用到的不,但是感觉它有点儿意思,所以花了点时间研究一下,特此记录。 引入 概念 通过数值比较、范围过滤等就可以完成绝大...
  • MySQL添加字段的方法并不复杂,下面将为您详细介绍MySQL添加字段和修改字段等操作的实现方法,希望对您学习MySQL添加字段方面会有所帮助。 1.登录数据库 >mysql -u root -p 数据库名称 2.查询所有数据表 >...
  • MySQL使用全文索引(fulltext index)

    万次阅读 多人点赞 2016-10-14 17:40:17
     旧版的MySQL的全文索引只能用在MyISAM表格的char、varchar和text的字段上。   不过新版的MySQL5.6.24上InnoDB引擎也加入了全文索引,所以具体信息要随时关注官网,  1.1. 创建表的同时创建全文索引  ...
  • 然而,索引的结构是为快速有效的全文索引准备的,特别是它不存储原始值。Elasticsearch可以把索引存放在一台机器或者分散在台服务器上,每个索引有一或个分片(shard),每个分片可以有个副本(replica)。 2....
  • SQL Server全文索引

    2010-10-11 20:36:54
    本篇为简单起见,仅在varchar型字段上图文演示非常完整的而且是高效可行的全文索引
  • char、varchar、text类型字段能创建全文索引(fulltext index type) 全文索引的基于关键词的,如何区分不同的关键词了,就要用到分词(stopword) 英文单词用空格,逗号进行分词;中文分词不方便(一个句子不...
  • 在MYSQL中使用全文索引(FULLTEXT index)  MYSQL的一个很有用的特性是使用全文索引(FULLTEXT index)查找文本的能力....全文索引可以建立在TEXT,CHAR或者VARCHAR类型的字段,或者字段组合上.我们将建立一个简单的表用
  • 使用MySQL进行全文索引

    千次阅读 2016-12-23 01:58:16
    需要对数据库中某张表里的若干字段进行全文索引。 2. 分析 可以采用三种方法: 1. mysql全文索引 2. lucene进行索引 3. 将mysql数据库转为mongodb 最后决定使用mysql全文索引,省得编码了。 3. 步骤 基本...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 69,411
精华内容 27,764
关键字:

多字段全文索引