gpt4 book ai didi

sql-server-2008 - 使用 SQL Server FTS Stemmer

转载 作者:行者123 更新时间:2023-12-04 07:20:45 27 4
gpt4 key购买 nike

有什么办法可以直接访问FORMSOF()中使用的词干分析器吗? CONTAINS 的选项全文搜索查询,以便它返回输入词的词干/屈折变化,而不仅仅是搜索列中存在的那些派生词。

例如,查询

SELECT * FROM dbo.MyDB WHERE contains(CHAR_COL,'FORMSOF(INFLECTIONAL, prettier)')

如果它们存在于 CHAR_COL 列中,则返回词干“漂亮”和其他变形,例如“漂亮”。我想要的是直接调用 FORMSOF() 函数而根本不引用列。任何机会?

编辑:
满足我需求的查询最终是
SELECT * FROM 
(SELECT ROW_NUMBER() OVER (PARTITION BY group_ID ORDER BY GROUP_ID) ord, display_term
from sys.dm_fts_parser('FORMSOF( FREETEXT, running) and FORMSOF(FREETEXT, jumping)', 1033, null, 1)) a
WHERE ord=1

Requires membership in the sysadmin fixed server role and access rights to the specified stoplist.

最佳答案

不,你不能这样做。您无法直接访问词干分析器。

您可以通过查看 Solr 了解它的工作原理。源代码。但它可能(我想会)与 MS SQL FT 中实现的不同。

更新:事实证明,在 SQL Server 2008 R2 中,您可以做一些非常接近您想要的事情。添加了一个特殊的表值 UDF:

 sys.dm_fts_parser('query_string', lcid, stoplist_id, accent_sensitivity)

它允许您获得标记化结果(即应用分词、同义词库和停止列表应用程序后的结果)。因此,如果您将其提供给“FORMSOF(....)”,它将为您提供所需的结果(好吧,无论如何您都必须处理结果集)。这是对应的 article in MSDN .

关于sql-server-2008 - 使用 SQL Server FTS Stemmer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4158929/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com