Удалить двойные кавычки из ключевых слов fts? - PullRequest
1 голос
/ 20 января 2020

Мне нужно индексировать JSON значения с полнотекстовым индексом.

В Oracle:

CREATE INDEX index_name ON tab_name (json_col_name)
  INDEXTYPE IS CTXSYS.CONTEXT
  PARAMETERS ('section group CTXSYS.JSON_SECTION_GROUP SYNC (ON COMMIT)');

В SQL Сервер:

CREATE FULLTEXT INDEX ON tab_name (json_col_name)
        KEY INDEX primary_key_name
        ON ft_cat_name
        [other options...];

Оба индексов созданы успешно. Но когда я делаю запрос с этими индексами, у меня возникают проблемы с SQL. Когда я пытался найти причину, я обнаружил, что это вызвано средством разбиения по словам.

Средство разбиения по словам сохраняет ненужные символы (двойные кавычки, двоеточие) всех полей и значений в тексте json как INDEX KEYWORDS.

SELECT * FROM sys.dm_fts_index_keywords  (DB_ID('db_name'), OBJECT_ID('tab_name'))

Кто-нибудь сталкивался с этой проблемой? И как решить?

Я хочу знать, как настроить средства разбиения по словам для удаления ненужных символов из ключевых слов при заполнении индексов в SQL.

1 Ответ

0 голосов
/ 17 марта 2020

Я попытался проиндексировать эти столбцы нейтральным языком (LCID = 0), и все ненужные символы в строке JSON были удалены из ключевых слов.

CREATE FULLTEXT INDEX ON tab_name (json_col_name language 0)
    KEY INDEX primary_key_name
    ON ft_cat_name
    [other options...];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...