当前位置: 首页 > 面试题库 >

在SQL Server索引中搜索单词

杨征
2023-03-14
问题内容

我需要在全文搜索和索引搜索之间进行操作:
我想在表的一列中搜索文本(如果很重要的话,该列上也可能会有一个索引)。

问题是,我想搜索列中的单词,但是我不想匹配部分。

例如,我的列中可能包含公司名称:
Mighty Muck Miller and Partners Inc.
Boy&Butter Breakfast company

现在,如果我搜索“ Miller ”,我想找到第一行。但是,如果我搜索“ iller ”,我就不想找到它,因为没有以“
iller”开头的单词。但是,搜索“ Break ”应找到“ Boy&Butter Breakfast company ”,因为一个单词的开头是“
Break ”。

所以,如果我尝试使用

WHERE BusinessName LIKE %Break%

它将找到太多点击。

有什么方法可以搜索由空格 或其他定界符分隔的 单词?

(LINQ最好,普通的SQL也可以)

重要提示: 到目前为止,空格不是唯一的分隔符!斜线,冒号,圆点,所有非字母数字字符都应考虑在内才能起作用!


问题答案:

SQL Server 2000或更高版本。

SELECT *
  FROM dbo.TblBusinessNames
 WHERE BusinessName like '%[^A-z^0-9]Break%' -- In the middle of a sentence
    OR BusinessName like 'Break%'            -- At the beginning of a sentence

LIKE的 关键字参考:http : //msdn.microsoft.com/zh-
cn/library/aa933232
(
SQL.80).aspx



 类似资料:
  • 我有大量相同类型的实体,每个实体都有大量属性,并且我只有以下两种选择来存储它们: 将每个项存储在索引中并执行多索引搜索 将所有enties存储在单个索引中,并且只搜索1个索引。 一般而言,我想要一个时间复杂度之间的比较搜索“N”实体与“M”特征在上述每一种情况!

  • 在测试此文本时,我在要在文本中搜索的列上创建了lucene(3.0.1)索引: 如果我按关键字搜索,它会给出结果,但按 我正在使用standardAnalyzer: 因为已设置,它应创建令牌,并且应存在$GLD。Analyzer将从文本中删除停止字,因为word也将在该过程中删除。

  • 本文向大家介绍SQLSERVER中忽略索引提示,包括了SQLSERVER中忽略索引提示的使用技巧和注意事项,需要的朋友参考一下 当我们想让某条查询语句利用某个索引的时候,我们一般会在查询语句里加索引提示,就像这样 当在生产环境里面,由于这个索引提示的原因,优化器一般不会再去考虑其他的索引,那有时候这个索引提示可能会导致查询变慢 经过你的测试,发现确实是因为这个索引提示的关系导致查询变慢,但是SQL

  • 我使用< code > Hibernate Search 4 . 5 . 1 编写了< code>Spring web-app。当我尝试搜索时,它返回一个条目列表。我认为索引中的问题。用于索引的目录已创建,但实体保存文件后,目录中的文件不变。 这是我的Spring配置文件 我的实体文件

  • bugu-mongo 2.x版本集成了Lucene的功能。当往MongoDB中新增一个Document时,能自动为该Document建立Lucene索引。相应的,当MongoDB中的Document被修改、删除时,对应的Lucene索引也会修改、删除。 另外,bugu-mongo还提供了对Lucene搜索的支持。根据Lucene索引进行搜索的时候,搜索结果能自动转换成对应的Entity对象。 在L

  • 问题内容: 有什么方法可以增加文档开头的用语吗?例如,我有3个文档。 XXX应该在搜索词“ Sulpher”的顶部列出,因为那是该文档中的第一个单词。如果YYY列在顶部,则可以,因为与XXX相同。但是ZZZ应该永远是最后一个。换句话说,在“左侧”找到的术语应比在“右侧”找到的术语具有更高的优先级。 问题答案: 您可以通过小写标准化术语位置来提高: 然后 屈服