gpt4 book ai didi

sql-server - SQL Server 中的阿拉伯语全文搜索

转载 作者:行者123 更新时间:2023-12-03 17:16:28 25 4
gpt4 key购买 nike

我在 SQL-Server 中的阿拉伯语全文搜索中遇到问题,此 link说我们可以在全文搜索中使用阿拉伯语。

为了进行更多描述,我在包含阿拉伯语和英语文本的专栏之一上启用了全文搜索。

当我对英文输入使用全文搜索时,一切正常,但在阿拉伯语中则不然。

请注意,我还使用其他只有阿拉伯语内容的表测试了我的查询,但我还是一无所获。

使用的查询是这样的:
select * from tbl where freetext(title, '"*شمس*"')SELECT *
FROM sys.dm_fts_parser('"الاستنتاجات ونصائح للوقاية من أشعة الشمس"', 1025, 0, 0)
WHERE special_term <> 'Noise Word' AND display_term IS NOT NULL

最佳答案

我会推荐这种方法:

1)确保您在数据库中的列是 nvarchar
2) 确保您将 nvarchar 值插入到列中。

这是为什么这很重要的一个小演示。您可能遇到了此脚本中显示的问题之一。

CREATE TABLE ftstest (Id int PRIMARY KEY, name varchar(1000), nameA varchar(1000) COLLATE Arabic_BIN, nameN nvarchar(1000) )
GO

-- CREATE FTS index for the ftstest table using designer

INSERT INTO ftstest VALUES(1, N'"الاستنتاجات ونصائح للوقاية من أشعة الشمس"', N'"الاستنتاجات ونصائح للوقاية من أشعة الشمس"', N'"الاستنتاجات ونصائح للوقاية من أشعة الشمس"')
GO

INSERT INTO ftstest VALUES (2, '"الاستنتاجات ونصائح للوقاية من أشعة الشمس"', '"الاستنتاجات ونصائح للوقاية من أشعة الشمس"', '"الاستنتاجات ونصائح للوقاية من أشعة الشمس"')
GO

SELECT * FROM ftstest WHERE CONTAINS(name, N'"الاستنتاجات ونصائح للوقاية من أشعة الشمس*"')
SELECT * FROM ftstest WHERE CONTAINS(nameA, N'"الاستنتاجات ونصائح للوقاية من أشعة الشمس*"')
SELECT * FROM ftstest WHERE CONTAINS(nameN, N'"الاستنتاجات ونصائح للوقاية من أشعة الشمس*"')
SELECT * FROM ftstest WHERE CONTAINS(name, '"الاستنتاجات ونصائح للوقاية من أشعة الشمس*"')
SELECT * FROM ftstest WHERE CONTAINS(nameA, '"الاستنتاجات ونصائح للوقاية من أشعة الشمس*"')
SELECT * FROM ftstest WHERE CONTAINS(nameN, '"الاستنتاجات ونصائح للوقاية من أشعة الشمس*"')

您的第二个查询也有同样的问题。 '' - 表示 varchar 文字,N'' - 表示 nvarchar。试试这个查询来检查:
SELECT * FROM sys.dm_fts_parser(N'"الاستنتاجات ونصائح للوقاية من أشعة الشمس"', 1025, 0, 0) 

关于sql-server - SQL Server 中的阿拉伯语全文搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44643911/

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