sql全文检索例子

sql 中contains的使用例子,参数详解

全文索引——CONTAINS 语法 我们通常在 WHERE 子句中使用 CONTAINS ,就象这样:SELECT * FROM table_name WHERE CONTAINS(fullText_column,‘search contents‘)。 我们通过例子来学习,假设有表 students,其中的 address 是全文本检索的列。

1. 查询住址在北京的学生 SELECT student_id,student_name FROM students WHERE CONTAINS( address, ‘beijing‘ )

remark: beijing是一个单词,要用单引号括起来。

2. 查询住址在河北省的学生 SELECT student_id,student_name FROM students WHERE CONTAINS( address, ‘"HEIBEI province"‘ )

remark: HEBEI province是一个词组,在单引号里还要用双引号括起来。

3. 查询住址在河北省或北京的学生 SELECT student_id,student_name FROM students WHERE CONTAINS( address, ‘"HEIBEI province" OR beijing‘ )

remark: 可以指定逻辑操作符(包括 AND ,AND NOT,OR )。

4. 查询有 ‘南京路‘ 字样的地址 SELECT student_id,student_name FROM students WHERE CONTAINS( address, ‘nanjing NEAR road‘ )

remark: 上面的查询将返回包含 ‘nanjing road‘,‘nanjing east road‘,‘nanjing west road‘ 等字样的地址。 A NEAR B,就表示条件: A 靠近 B。

5. 查询以 ‘湖‘ 开头的地址 SELECT student_id,student_name FROM students WHERE CONTAINS( address, ‘"hu*"‘ )

remark: 上面的查询将返回包含 ‘hubei‘,‘hunan‘ 等字样的地址。 记住是 *,不是 %。

6. 类似加权的查询 SELECT student_id,student_name FROM students WHERE CONTAINS( address, ‘ISABOUT (city weight (.8), county wright (.4))‘ )

remark: ISABOUT 是这种查询的关键字,weight 指定了一个介于 0~1之间的数,类似系数(我的理解)。表示不同条件有不同的侧重。

7. 单词的多态查询 SELECT student_id,student_name FROM students WHERE CONTAINS( address, ‘FORMSOF (INFLECTIONAL,street)‘ )

remark: 查询将返回包含 ‘street‘,‘streets‘等字样的地址。 对于动词将返回它的不同的时态,如:dry,将返回 dry,dried,drying 等等。

INFLECTIONAL的英文意思就是"派生词"的意思

而与FORMSOF配合使用的参数还有THESAURUS即同义词

这种查询要依靠thesaurus file(具体位置要依语言和和服务器而定),thesaurus file文件名格式为:TSXXX.xml其中XXX语言代码,比如:

chs for 简体中文

ENU for U.S. English

ENG for U.K. English。 其一般有如下两种形式
Internet Explorer IE IE5

例如: SELECT student_id,student_name FROM students WHERE CONTAINS( address, ‘FORMSOF (THESAURUS,IE)‘ )

搜索IE将返回Internet Explorer,IE5

sql全文检索例子,布布扣,bubuko.com

时间: 2024-12-29 07:57:06

sql全文检索例子的相关文章

随手记:SQL语句例子

计算出orgs_info表code字段数据包含指定字符串'-'的个数 select * from orgs_info where length(code)-length(replace(code,'-',''))=3 随手记:SQL语句例子

hive如何执行一条sql的例子

SQL如何在Mapreduce执行 左边是数据表,右边是结果表,这条 SQL 语句对 age 分组求和,得到右边的结果表,到底一条简单的 SQL 在 MapReduce 是如何被计算, MapReduce 编程模型只包含 map 和 reduce 两个过程,map 是对数据的划分,reduce 负责对 map 的结果进行汇总. select id,age,count(1) from student_info group by age 首先看 map 函数的输入的 key 和 value,输入主要

sql 存储过程例子和学习demo

-------------------------------------------------------------------------- -------------------------------存储过程Study------------------------------ -------------------------------------------------------------------------- --删除表 drop table student go -

sql 游标例子 根据一表的数据去筛选另一表的数据

DECLARE @MID nvarchar(20)DECLARE @UTime datetime DECLARE @TBL_Temp table( MID nvarchar(20), Uptime datetime, Chat nvarchar(20)) --Get UserDECLARE My_Cursor CURSOR --定义游标FOR ( SELECT distinct MID, Uptime from TLinkTest) OPEN My_Cursor fetch next from

sql DDL例子

创建序列: CREATE SEQUENCE emp_sequence --序列名INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXVALUE -- 不设置最大值 NOCYCLE -- 一直累加,不循环 CACHE 10--它的用处是缓存指定个数的序列值,比如你设置的 cache 是10,那么在获取 nextval 时,Oracle 会直接从 cache 中取下一个序列值,如果 cache 中缓存的序列值没有了(比如 cache 中的序列值用完

一个复杂的SQL存储过程例子

USE [DB_YH_ERP_GW_V2_NewReq] GO /****** Object:  StoredProcedure [dbo].[sp_FactoryAllocationFind]    Script Date: 05/09/2016 08:45:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author:

SQL行列转换6种方法

在进行报表开发时,很多时候会遇到行列转换操作,很对开发人员针对于SQL级别行列转换操作一直不甚理解,今天正好抽空对其进行了一些简单的总结.这里主要列举3种可以实现SQL行列转换的方法,包括通用SQL解法以及Oracle支持解法. 一.测试数据 测试表依旧采用Oracle经典的scott模式下的dept表和emp表,结构如下: DEPT: create table DEPT ( DEPTNO NUMBER(2) not null, DNAME VARCHAR2(14), LOC VARCHAR2(

13、SQL Server 自定义函数

SQL Server 自定义函数 在SQL Server中不仅可以使用系统函数(如:聚合函数,字符串函数,时间日期函数等)还可以根据需要自定义函数. 自定义函数分为标量值函数和表值函数. 其中,标量值函数用于返回单个值,而表值函数用于返回一个结果集. 函数参数 参数可以是常量.表中的某个列.表达式或其他类型的值.在函数中有三种类型的参数. 1.输入:指必须输入一个值. 2.可选值:在执行该参数时,可以选择不输入参数. 3.默认值:函数中默认有值存在,调用时可以不指定该值. 创建标量值函数 语法:

SQL注入问题的解决方案

一.产生及产生原因分析(sql语句进行拼串的原因) 分析: String sql = "select * from user where username='"+username+"' and password='"+password+"'"; String sql = "select * from user where username='tom' and password='123'"; select * from use