社区
C#
帖子详情
sql2000全文检索的问题,如我输入查询内容:“图壁厂1号”查询出来的内容不正确
pei051027
2008-07-09 03:42:47
具体是这样:
查询内容: 结果:
“图壁厂1号” 只要含有“图壁厂“三个字的都出来了
“图壁厂11号” 查询正确
意思就是说只要是那个1号的“1”是小于10的数字,查询都不正确,
只要是大于10的查询都正确
我想问问sql2000的 全文检索在获取关键字的时候怎么取的?我的这个为什么不正确?
...全文
163
17
打赏
收藏
sql2000全文检索的问题,如我输入查询内容:“图壁厂1号”查询出来的内容不正确
具体是这样: 查询内容: 结果: “图壁厂1号” 只要含有“图壁厂“三个字的都出来了 “图壁厂11号” 查询正确 意思就是说只要是那个1号的“1”是小于10的数字,查询都不正确, 只要是大于10的查询都正确 我想问问sql2000的 全文检索在获取关键字的时候怎么取的?我的这个为什么不正确?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xuyang840117
2008-07-09
打赏
举报
回复
下面是我写的共通 参考下
public class MCHBaseClass
{
private DataSet ds = new DataSet();
private string mPath = "";
public DataSet getDS()
{
return ds;
}
/// <summary>
/// 加载获取的MXL 获取XML路径
/// </summary>
/// <param name="path"></param>
public void LoadSetting(string path)
{
this.mPath = path;
this.ds = new DataSet();
try
{
ds.ReadXml(@mPath);
}
catch (Exception ex)
{
System.Console.WriteLine(ex.Message);
throw;
}
}
public DataTable Getting(string fNode)
{
DataTable dt = new DataTable();
try
{
dt = ds.Tables[fNode];
return dt;
}
catch (Exception ex)
{
System.Console.WriteLine(ex.Message);
throw;
}
}
/// <summary>
/// 获取fNode父节点下第intKey行 strSection的属性值
/// </summary>
/// <param name="fNode">父节电名称</param>
/// <param name="intKey">行数</param>
/// <param name="strSection">属性名称</param>
/// <returns></returns>
public string Getting(string fNode, int intKey, string strSection)
{
string strValue = "";
try
{
strValue = Convert.ToString(ds.Tables[fNode].Rows[intKey][strSection]);
return strValue;
}
catch (Exception ex)
{
System.Console.WriteLine(ex.Message);
throw;
}
}
/// <summary>
/// 把ds写到路径mPath下,保存成XML
/// </summary>
/// <param name="ds1"></param>
/// <param name="mPath1"></param>
public void SaveSettings(DataSet ds1, string mPath1)
{
try
{
ds1.WriteXml(@mPath1);
}
catch (Exception ex)
{
System.Console.WriteLine(ex.Message);
throw;
}
}
/// <summary>
/// 更改父节点为fNode 第intKey行 strSection属性值 为strDefaultValue
/// </summary>
/// <param name="fNode">父节点名称</param>
/// <param name="intKey">行数</param>
/// <param name="strSection">属性名称</param>
/// <param name="strDefaultValue">更改的值</param>
public void SetSetting(string fNode, int intKey, string strSection, string strDefaultValue)
{
try
{
ds.Tables[fNode].Rows[intKey][strSection] = strDefaultValue;
ds.AcceptChanges();
this.SaveSettings(ds,mPath);
}
catch (Exception ex)
{
System.Console.WriteLine(ex.Message);
throw;
}
}
/// <summary>
/// 在父节点为fNode intKey行 添加 属性名称strSection 值strDefaultValue
/// </summary>
/// <param name="fNode">父节点名称</param>
/// <param name="intKey">行数</param>
/// <param name="strSection">添加的属性名称</param>
/// <param name="strDefaultValue">属性值</param>
public void AddSettings(string fNode, int intKey, string strSection, string strDefaultValue)
{
try
{
ds.Tables[fNode].Columns.Add(strSection);
ds.Tables[fNode].Rows[intKey][strSection] = strDefaultValue;
ds.AcceptChanges();
this.SaveSettings(ds, mPath);
}
catch (Exception ex)
{
System.Console.WriteLine(ex.Message);
throw;
}
}
/// <summary>
/// 删除父节点为fNode下的 属性值strSection
/// </summary>
/// <param name="fNode"></param>
/// <param name="strSection"></param>
public void DeleteSettings(string fNode, string strSection)
{
try
{
ds.Tables[fNode].Columns.Remove(strSection);
ds.AcceptChanges();
this.SaveSettings(ds, mPath);
}
catch (Exception ex)
{
System.Console.WriteLine(ex.Message);
throw;
}
}
}
hexiaoyulee
2008-07-09
打赏
举报
回复
发sql语句吧
sql2000不会把“图壁厂1号”省略成“图壁厂”
pupo
2008-07-09
打赏
举报
回复
单词断字符的语言用neutral看看
xuyang840117
2008-07-09
打赏
举报
回复
把你 sql 语句发一下 估计是你写的问题
pei051027
2008-07-09
打赏
举报
回复
不是的,虽然是模糊查询的,但是这个“图壁厂”三个字我可以换成其他的字,
如“加加减减1号”,
我说的这个问题,是说sql2000在全文检索的时候在取关键字的时候会不会不准确,把“图壁厂1号”省略成“图壁厂”
pupo
2008-07-09
打赏
举报
回复
可能是SQL Server本身中文分词的问题
hexiaoyulee
2008-07-09
打赏
举报
回复
好象说得不是很清楚
查询 like ‘图壁厂1%号’时
只要字段在%两边符合就在结果里面
图壁厂1号 和 图壁厂11号都满足查询要求
而查询 like ‘图壁厂11%号’时
只有图壁厂11号满足条件,图壁厂1号不满足
hexiaoyulee
2008-07-09
打赏
举报
回复
你查询的时候是不是输入数字然后模糊查询?
数字输入为N
查询 like ‘图壁厂N%号’
如果N为单位数1,2...9
当然由于匹配会把1,2...9开头的数字都查询出来
如果N为双位的
由于查询匹配更精确
查询结果正确
pei051027
2008-07-09
打赏
举报
回复
“图壁厂”这个只是个事例,
我是说在sql全文检索的时候,sql他忽略了(1,2,3,4..9)这写单个数字,
搜索关键字为“图壁厂1号”的搜索结果和关键字为“图壁厂”搜索的内容是一样的。
但是1号要是变成两位数字(10,11....)就查询正确
skison
2008-07-09
打赏
举报
回复
like ‘图壁厂[1-9][0-9]%号’
skison
2008-07-09
打赏
举报
回复
like ‘图壁厂[1-9][^号]’
skison
2008-07-09
打赏
举报
回复
like ‘图壁厂[1-9][0-9]号’
pei051027
2008-07-09
打赏
举报
回复
嗯,是的
就是SQL2000中的全文检索那个功能,全文目录
bbbbbb888888
2008-07-09
打赏
举报
回复
是直接SQL中的%查询么?是不是检索的算法有问题
pei051027
2008-07-09
打赏
举报
回复
就是说查询“图壁厂1号”或者“图壁厂2号”或者“图壁厂3号”等等,
(1,2,3,4,5,6,7,8,9)号 这些查询的时候不正确
但是如果是:“图壁厂10号”,或者“图壁厂11号”等等
(10以上的)查询都正确
不知道说清楚了没?
pei051027
2008-07-09
打赏
举报
回复
就是说查询“图壁厂1号”或者“图壁厂2号”或者“图壁厂3号”等等,
(1,2,3,4,5,6,7,8,9)号 这些查询的时候不正确
但是如果是:“图壁厂10号”,或者“图壁厂11号”等等
(10以上的)查询都正确
不知道说清楚了没?
skison
2008-07-09
打赏
举报
回复
大于小于没听明白 那个似乎是图示列表的说明也没看明白
解释清点吧
【
SQL
Server性能优化】运用
SQL
Server的
全文检索
来提高模糊匹配的效率
今天去面试,这个公司的业务需要模糊
查询
数据,之前他们通过mongodb来存储数据,但他们说会有丢数据的
问题
,我从业务上了解到,显然对他们公司而言,丢数是绝对不能允许的。 另外,他们说之前也用过
SQL
Server的
全文检索
,但速度不够快,不如用mongodb快,当然我不太清楚他们所谓快的具体定义,比如
查询
只需要1秒,还是1分钟。他们的系统现在采用的是
SQL
Server,通过复制来实现高可
关于
sql
全文检索
与lucene效率比较的摘要
关于
sql
全文检索
与lucene效率比较的摘要,以下仅为网络找到的效率意见,近期会对效率做出测试比较,再更新。 -------------------------------------------------------------------------------------------------------------------- 观点一: 1.
查询
速度
问题
SQL
Server-检索数据
SQL
Server-检索数据1、select语句2、检索单个列3、检索多个列4、检索所有列5、检索不同的值6、限制结果 该文章中使用的数据表创建于我的另一篇博客 点击前往 1、select语句 select语句用途是从一个或多个表中检索信息 为了使用select检索表数据,必须至少要给出两条信息——想选择什么,以及从什么地方开始选择。 2、检索单个列 语句如下: select 姓名 from 学生表 利用select语句充学生表中检索一个名为姓名的列。 所需的列名写在select关键字之后,from关键
SQL
语句-----检索数据(SELECT
查询
)
SQL
语句-----检索数据(
查询
)
浅析
SQL
Server
全文检索
查询
因为项目需要,需要对上传的文件
内容
进行
查询
。通过MSDN了解到Windows索引服务可以实现对文件的
全文检索
,并可以通过
SQL
Server进行
查询
。项目将这两者结合,实现对上传文件的
全文检索
的解决方案。 方案概要: 1. 改变文件存储时的文件名 2. 配置索引服务器,并将索引服务器与MS
SQL
Server关联。 3. 修改
SQL
语句,将进行全文
查询
语句的
内容
C#
110,825
社区成员
642,575
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章