Индекс не имеет всех слов - PullRequest
2 голосов
/ 17 мая 2019

Я использую версию MS SQL Server 2017 DEV с файловой базой данных, и у меня большая база данных с примерно 11.000 PDF-файлами.Некоторые слова отсутствуют в индексе, например слово «Nachtanzdemo».Это слово находится в одном файле PDF несколько раз, но когда я ищу его, SQL Server ничего не показывает.

Итак, я поместил статью из файла PDF с этим словом в документ Word и поместил ее в общий доступный файл.SQL Server неожиданно находит этот документ Word.Так что не так с моим SQL Server?PDF-файлы будут найдены с помощью этой dll:

C:\Windows\system32\glcndFilter.dll

С помощью следующей команды я ищу самые распространенные слова в моей базе данных:

IF NOT OBJECT_ID('tempdb..#mappings') IS NULL
       DROP TABLE #mappings;
GO

CREATE TABLE #mappings (docid INT, [key] UNIQUEIDENTIFIER);
GO

USE TK_Filetable

DECLARE @table_id int = OBJECT_ID(N'dbo.FileTable1');
INSERT INTO #mappings (docid, [key])

EXEC sp_fulltext_keymappings @table_id;

SELECT TOP 10 
    *, kw.display_term, kw.occurrence_count 
FROM 
    sys.dm_fts_index_keywords_by_document(db_id(), @table_id) kw
LEFT JOIN 
    #mappings map ON kw.document_id = map.docid
LEFT JOIN 
    [dbo].[FileTable1] FT1 ON map.[key] = FT1.stream_id
ORDER BY 
    kw.occurrence_count DESC;

И я получаю список немецкого языкаnoisewords, только "der" и "die".

У кого-нибудь есть такие же проблемы?Что я могу сделать, чтобы мой SQL Server нашел все слова?Я перестраивал индекс несколько раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...