ID do artigo: 2252955 - Última revisão: quarta-feira, 7 de julho de 2010 - Revisão: 2.0

Considerações ao usar o mecanismo de pesquisa Full-Text do SQL Server para o idioma japonês

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Recolher tudo

Introdução ao

Este artigo descreve as considerações que se aplicam quando você usa o mecanismo de pesquisa de texto completo do SQL Server para o idioma japonês.

Mais Informações

Idioma no japonês, uma frase pode conter dois ou mais palavras sem espaços entre palavras. No Microsoft SQL Server, quando você usa o mecanismo de pesquisa Full-Text do SQL Server para executar uma pesquisa de prefixo de uma frase em japonês, o mecanismo de pesquisa de texto completo não considera a frase a ser um termo de prefixo. Em vez disso, o mecanismo de pesquisa de texto completo considera que a frase a ser termos de palavra. Isso ocorre porque uma palavra é definida como uma seqüência de caracteres sem espaços ou pontuação. Além disso, o mecanismo de pesquisa funciona somente no modo de correspondência de prefixo. O mecanismo de pesquisa não está funcionando do modo de correspondência de sufixo.

Por exemplo, você pode criar uma tabela e inserir algumas frases em japonês executando as seguintes instruções no SQL Server:
CREATE TABLE test(c1 int PRIMARY KEY,c2 nvarchar(255))

INSERT test VALUES(1,N'?????')
INSERT test VALUES(2,N'Fw: ???')
INSERT test VALUES(3,N'KK-Information:???')
INSERT test VALUES(4,N'[Q] ???????')
INSERT test VALUES(5,N'KK-Information:????????????')
INSERT test VALUES(6,N'???')
INSERT test VALUES(7,N'????????')
INSERT test VALUES(8,N'????????')
INSERT test VALUES(9,N'RE: ??????')
INSERT test VALUES(10,N'??????')
INSERT test VALUES(11,N'White List???')
INSERT test VALUES(12,N'??????????')

CREATE FULLTEXT CATALOG test AS DEFAULT;
GO

CREATE FULLTEXT INDEX ON test(c2) KEY INDEX PK__<IndexName>;
GO


, Em seguida, você pode executar as seguintes três consultas:
Pesquisa 1
SELECT * FROM test WHERE CONTAINS(c2, N'???')
o resultado da consulta 1 é da seguinte maneira:
c1	c2
---    ----------------------------------------------
2	Fw: ???
3	KK-Information:???
6	???
Consulta 2
SELECT * FROM test WHERE CONTAINS(c2, '"???*"')
o resultado da consulta 2 é da seguinte maneira:
c1	c2
---    ----------------------------------------------
2           Fw: ???
3           KK-Information:???
6           ???
8           ????????
9           RE: ??????
10          ??????
Consulta 3
SELECT * FROM test WHERE CONTAINS(c2, '"*???*"')
o resultado da consulta 3 é da seguinte maneira:
c1	c2
---    ----------------------------------------------
2           Fw: ???
3           KK-Information:???
6           ???
8           ????????
9           RE: ??????
10          ??????












F
Os resultados das consultas, você pode encontrar que o resultado da consulta 2 é o mesmo que o resultado da consulta 3 porque a consulta de texto completo não funciona no modo de correspondência de sufixo. Além disso, ? ??? ? é um token que difere da matchings ? ??????? ? ou ? branco List??? ?. 

Para indexar frases, um separador de palavras para a família de idiomas devem ser usados. Separadores de trabalho utilizar espaços e outros sinais reconhecer fases. Portanto, algumas fases não podem ser reconhecidos pelo separador de palavras e não podem ser pesquisados, usando o mecanismo de texto completo no idioma japonês. Para obter mais informações sobre como separadores de palavras, consulte o tópico de ? Word separadores e lematizadores ? na seção de referência de ? ?.

a prática recomendada para usar o mecanismo de pesquisa de texto completo no idioma japonês é testar as fases para ver se as frases são afetadas pela limitação. Se uma fase consiste em palavras sem espaços, você não pode usar a funcionalidade de texto completo para a frase de pesquisa. Em vez disso, você pode usar a palavra-chave LIKE junto com caracteres curinga. No entanto, o desempenho da operação LIKE é menor do que o desempenho da pesquisa de texto completo. Você deve considerar o efeito de desempenho para seu aplicativo.

A seguir estão alguns exemplos de consultas a palavra-chave LIKE para procurar frases.

Consulta 4
SELECT * FROM test WHERE c2 like '???%'
o resultado é da seguinte maneira:
c1	c2
---    ----------------------------------------------
6           ???
8           ????????
10          ??????
Consulta 5
SELECT * FROM test WHERE c2 like '%???%'
o resultado é da seguinte maneira:
c1	c2
---    ----------------------------------------------
1           ?????
2           Fw: ???
3           KK-Information:???
4           [Q] ???????
5           KK-Information:????????????
6           ???
7           ????????
8           ????????
9           RE: ??????
10          ??????
11          White List???
12          ??????????







Observação:
Se você usar o mecanismo de pesquisa de texto completo no SQL Server 2008 ou versões posteriores, você encontrará mais informações sobre o conteúdo de um índice de texto completo, usando a seguinte consulta:
SELECT * FROM sys.dm_fts_index_keywords(db_id('test'), object_id('test'))
GO
o resultado é da seguinte maneira:
keyword                                               display_term             column_id   document_count
----------------------------------------------------- ------------------------ ----------- --------------------

0x00660077                                           fw                       2           1
0x0069006E0066006F0072006D006100740069006F006E       information              2           2
0x006B006B                                           kk                       2           2
0x006C00690073007430C630B930C8                       list???               2           1
0x00770068006900740065                               white                    2           1
0x30BF30A430C830EB30D530A330EB30BF30C630B930C80032   ???????????2  2           1
0x30C630B930C8                                       ???                   2           3
0x30C630B930C830D530A330EB30BF0031                   ???????1          2           1
0x30C630B930C830E130FC30EB                           ??????             2           2
0x30D530A330EB30BF30C630B930C80033                   ???????3          2           1
0x30D530A330EB30BF30EA30F330B030C630B930C8           ??????????     2           1
0x30DD30EA30B730FC30C630B930C8                       ???????           2           1
0x6DFB4ED830C630B930C8                               ?????               2           1
0xFF                                                 END OF FILE              2           12

(14 row(s) affected)
No resultado da amostra, apenas 3 linhas contêm a palavra ? ??? ?. O mecanismo de pesquisa de texto completo trata a palavra ? ??? ? como um símbolo diferente da palavra ? ??????. ?  

Referências

Para obter mais informações sobre o mecanismo de pesquisa Full-Text do SQL Server, visite os seguintes sites da Microsoft:

A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Workgroup
Palavras-chave: 
kbsurveynew kbinfo kbexpertiseadvanced kbmt KB2252955 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 2252955  (http://support.microsoft.com/kb/2252955/en-us/ )