Artigo: 2252955 - Última revisão: quarta-feira, 7 de Julho de 2010 - Revisão: 2.0

Considerações para utilizar o motor de procura de texto completo 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 | Reduzir tudo

Introdução

Este artigo descreve considerações que se aplicam quando utiliza o motor de procura de texto completo do SQL Server para o idioma japonês.

Mais Informação

Idioma no japonês, uma expressão pode ser composto de duas ou mais palavras sem espaços entre as palavras. No Microsoft SQL Server, quando utiliza o motor de procura de texto completo do SQL Server para efectuar uma procura de prefixo para uma frase japonês, o motor de procura de texto completo não considera a expressão a ser um termo de prefixo. Em vez disso, o motor de procura de texto completo considera a expressão a ser termos de palavra. Isto acontece porque uma palavra é definida como uma cadeia de caracteres sem espaços ou pontuação. Além disso, o motor de procura funciona apenas no modo de correspondência de prefixo. O motor de procura não funciona do modo de correspondência de sufixo.

Por exemplo, crie uma tabela e inserir algumas frases 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, executar as consultas de três seguintes:
Consulta 1
SELECT * FROM test WHERE CONTAINS(c2, N'???')
o resultado da consulta 1 é a seguinte:
c1	c2
---    ----------------------------------------------
2	Fw: ???
3	KK-Information:???
6	???
Consulta 2
SELECT * FROM test WHERE CONTAINS(c2, '"???*"')
o resultado da consulta 2 é a seguinte:
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 é a seguinte:
c1	c2
---    ----------------------------------------------
2           Fw: ???
3           KK-Information:???
6           ???
8           ????????
9           RE: ??????
10          ??????












F
Dos resultados das consultas, pode localizar a que o resultado da consulta 2 é a mesma como resultado de consulta 3 porque a consulta de texto completo não funciona no modo de sufixo de correspondência de processos. Além disso, ? ??? ? é um sinal que difere da ? ??????? ? ou de ? branco List??? ? no matchings. 

Devem ser utilizados para tokenize frases, um separador de palavras para a família do idioma. Separadores de trabalho utilizam espaços e outros sinais para reconhecer fases. Por conseguinte, alguns fases não podem ser reconhecidos pelo separador de palavras e não não possível procurar utilizando o motor de texto completo no idioma japonês. Para mais informações sobre separadores de palavras, consulte o tópico ? Word Breakers e radicalizadores ? na secção ? referência ?.

As melhores práticas para utilizar o motor de procura de texto completo no idioma japonês, deve testar as fases para ver se as frases são afectadas pela limitação. Se uma fase consiste em palavras sem espaços, não pode utilizar a funcionalidade de texto completo para a expressão de procura. Em vez disso, pode utilizar a palavra-chave LIKE juntamente com caracteres universais. No entanto, o desempenho da operação LIKE é mais baixo do que o desempenho da procura de texto completo. Tem de considerar o efeito de desempenho para a aplicação.

Seguem-se alguns exemplos de consultas da palavra-chave LIKE para procurar frases.

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







Nota
Se utilizar o motor de procura de texto completo no SQL Server 2008 ou versões posteriores, pode encontrar mais informações sobre o conteúdo de um índice de texto completo, utilizando a seguinte consulta:
SELECT * FROM sys.dm_fts_index_keywords(db_id('test'), object_id('test'))
GO
o resultado é o seguinte:
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 motor de procura de texto completo trata a palavra ? ??? ? como um token diferente da palavra ? ??????. ?  

Referências

Para mais informações sobre o motor de procura de texto completo do SQL Server, visite o seguintes Web sites 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 2005 Server Enterprise
  • 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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/ )