问题标签 [containstable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
151 浏览

sql - SQL Server 全文搜索返回意外结果

我在 Microsoft SQL Server 数据库表中有几百万条记录。搜索[Column] LIKE '%test%'太慢了。因此,我使用全文搜索。

CONTAINS经过大量尝试和FREETEXT...后,我的查询如下所示

该查询返回几条记录,例如...

一旦我包含我的 SQL 查询的倒数第二行,我希望中间的结果会消失。不幸的是,查询没有返回一行。

为什么会这样以及如何解决?

0 投票
1 回答
877 浏览

sql - containstable 在搜索时忽略干扰词“of”

我正在使用containstable. 我正在使用文本“重心”进行搜索,但它不返回结果。如果我只搜索“中心”或“重力”,那么它会返回结果。

怎样才能克服这种情况?

0 投票
1 回答
53 浏览

sql-server - SQL Server FTS 索引正确的关键字但不返回这些关键字的结果

我创建了一个 FTS 目录,它为名为 Articles 的表的 Title 列编制索引。分词器语言设置为荷兰语。

文章标题为“Contactgegevens Wijkteams 2019”。我的搜索词是“contactgegevens”,它是荷兰语的“联系方式”。尽管我已经检查了已成功索引正确表/列中的完整单词的索引关键字,但该单词可能会被拆分为“contact”和“gegevens”。

搜索词:

使用自由文本:

如果我FREETEXT在 where 子句中使用,我确实找到了结果,但它出现在大约 300 行的末尾附近。大多数行的标题列中没有这个词,甚至没有意思相近的词。

使用自由文本表:

使用FREETEXTTABLE,我得到的结果要少得多,但其中没有一个包含关键字:'contactgegevens' 或它的变体。

使用包含表:

CONTAINSTABLE似乎返回非常相似的结果FREETEXTTABLE

如前所述,我使用以下查询检查了索引关键字:

并且该关键字被索引为正确的表/列并查看接近此结果的记录我可以看到它索引了与我正在寻找的文章标题相关的其他单词。

我希望能够搜索诸如“Contactgegevens Wijkteams 2019”之类的短语,并将具有该确切标题的文章显示在列表顶部,但事实并非如此。在某些情况下,它根本不会出现在搜索结果中。

我在这里想念什么?

0 投票
2 回答
573 浏览

c# - 按未选择的列排序

我正在尝试使用 SQL 运算符CONTAINSTABLE来获取搜索结果列表,如下所示:

并从 EF Core 2.1 调用此函数:

我想按降序排列我的搜索结果RANK,以便在顶部获得最相关的结果。ORDER BY ccontains.[RANK]不允许向我的函数添加一个,因为我SELECT * FROM udfSearchCustomers(...)将被 EF Core 包装:ORDER BY不允许在内部查询中使用。添加query.OrderBy(c => c.Rank)是不可能的,因为RANK不是在Customer实体上。

我尝试使用System.Linq.Dynamic以及其他反射解决方案来做到这一点:

但我有一个例外:

“Rank”不是“Customer”类型的成员

这是真的。有没有办法对不在实体上的列进行排序,或者我需要创建一个MyCustomerSearchQuery查询对象并使用 AutoMapper 将它们转换为Customer?我宁愿不这样做,因为Customer有许多属性并且保持它们同步会很麻烦。

提前致谢!

0 投票
0 回答
48 浏览

mysql - 相当于 MySQL 中 SQL Server 的 CONTAINSTABLE

我正在将查询从 SQL Server 转换为 MySQL,但在转换语句 contains 表时遇到问题,因为它使用rank.

我一直在寻找类似的属性,但没有找到任何东西,这是我在 SqlServer 的查询

0 投票
0 回答
36 浏览

python - How do I: 如果文件包含“蓝色”,则所有其他带有“蓝色”的文件必须跟随

我有一个在 Python 中运行的图像生成脚本。

我想说的是,如果选择了“蓝色皮肤”,那么名称中带有“蓝色”的所有其他特征都必须遵循。

这是我要应用规则的脚本,因为此时所有特征都是随机选择的,然后根据此处选择的特征生成图像:

所以我想要实现的是,如果“皮肤”选择“蓝色皮肤”,那么我想为“脚蹼覆盖”选择“蓝色右脚蹼覆盖”,依此类推。

我尝试了许多 if 语句,但似乎没有一个能奏效。我的想法是这样的:

我不确定我是否在正确的轨道上..

我希望同样的规则适用于“蓝色皮肤”应具备的所有特征。

我刚开始使用 Python,所以任何帮助将不胜感激!谢谢!

0 投票
1 回答
42 浏览

sql-server - CONTAINSTABLE - FULL TEXT INDEX 中是否有等效于 OR 子句

我正在尝试寻找解决方案以改进字符串搜索过程,因此我选择了全文索引策略。

但是,在实现它之后,我仍然可以看到,在使用多个带有 OR 子句的全文索引表使用多个字符串进行搜索时,性能会受到影响。

(例WHERE CONTAINS(F.*,'%Gayan%') OR CONTAINS(P.FirstName,'%John%')

作为一种解决方案,我正在尝试使用CONTAINSTABLE期望性能改进。

现在,我在CONTAINSTABLE使用LEFT JOIN

请看下面的例子。

查询 1

这会产生以下结果。

查询 1 输出

查询 2

结果

查询 2 输出

期望以作为 SQL SERVEROR子句行为的方式使用查询 1。据我所知CONTAINSTABLE,查询 1 将数据与building表连接起来,其余结果将被忽略,以便表CONTAINSTABLEPerson获取已经包含从building表中过滤的关键字的数据。

如果keyword = Building,我想匹配两个表中的关键字,而不管在两个表中搜索保存的记录。在每个表中都有一条记录就足够了。

概括

查询 2 执行良好,但在索引中的单词增长时会产生缓慢。查询 1 似乎已优化(当涉及多个在线资源和 MS 文档时),但是,它并没有给我预期的输出。

有没有办法解决这个问题?

我并不严格依附于CONTAINSTABLE. 建议另一种优化方法也很重要。 谢谢你。