Use uma consulta de correspondência para consultar dados em uma tabela com base em correspondências aproximadas. O Tablestore tokeniza os valores das colunas do tipo TEXT e as palavras-chave usadas nas consultas de correspondência com base no analisador especificado. Assim, o Tablestore executa consultas de correspondência com base nos tokens. Recomendamos chamar a operação MatchPhraseQuery para executar consultas de frase de correspondência em colunas com tokenização fuzzy, garantindo alto desempenho.
Pré-requisitos
Inicialize uma instância do OTSClient. Para mais informações, consulte Inicializar uma instância do OTSClient.
Primeiro, crie uma tabela de dados e grave dados nela. Para mais informações, consulte Criar uma tabela de dados e Gravar dados.
Em seguida, crie um índice de pesquisa para a tabela de dados. Para mais informações, consulte Criar um índice de pesquisa.
Parâmetros
|
Parâmetro |
Descrição |
|
table_name |
O nome da tabela de dados. |
|
index_name |
O nome do índice de pesquisa. |
|
offset |
A posição a partir da qual a consulta atual começa. |
|
limit |
O número máximo de linhas que a consulta atual deve retornar. Para consultar apenas o número de linhas que atendem às condições da consulta, sem consultar os dados específicos das linhas, defina o parâmetro limit como 0. |
|
get_total_count |
Especifica se a consulta deve retornar o número total de linhas que atendem às condições. Valor padrão: false, que indica que o número total de linhas não é retornado. Se você definir este parâmetro como true, o desempenho da consulta será comprometido. |
|
query_type |
|
|
field_name |
O nome da coluna que você deseja consultar. A coluna pode ser do tipo TEXT. |
|
text |
A palavra-chave usada para corresponder ao valor da coluna durante uma consulta de correspondência. Se a coluna consultada for do tipo TEXT, a palavra-chave é tokenizada em vários tokens com base no tipo de analisador especificado ao criar o índice de pesquisa. Por padrão, o sistema executa a tokenização de palavra única se você não especificar o tipo de analisador ao criar o índice de pesquisa. Por exemplo, se a coluna consultada for do tipo TEXT e o tipo de analisador for de tokenização de palavra única, ao executar uma consulta de correspondência com a frase "this is", serão retornados resultados como "..., this is tablestore", "is this tablestore", "tablestore is cool", "this" e "is". |
|
operator |
O operador lógico. Por padrão, o operador lógico é OR, o que significa que uma linha atende às condições da consulta quando o valor da coluna contém pelo menos o número mínimo de tokens. Defina o operador como AND para que a linha atenda às condições da consulta apenas quando o valor da coluna contiver todos os tokens. |
|
minimum_should_match |
O número mínimo de tokens correspondentes contidos no valor da coluna. Uma linha é retornada apenas quando o valor da coluna consultada nessa linha contém pelo menos o número mínimo de tokens correspondentes. Nota
O parâmetro minimum_should_match deve ser usado em conjunto com o operador lógico OR. |
|
columns_to_get |
Especifica se a consulta deve retornar todas as colunas das linhas que atendem às condições. Para isso, especifique os parâmetros return_type e return_names.
|
Exemplo
O código de exemplo a seguir mostra como usar o SDK para consultar as linhas nas quais o valor da coluna text corresponde a "ots text php keyword" da tabela de dados.
$request = array(
'table_name' => 'php_sdk_test',
'index_name' => 'php_sdk_test_search_index',
'search_query' => array(
'offset' => 0,
'limit' => 2,
'get_total_count' => true,
'query' => array(
'query_type' => QueryTypeConst::MATCH_QUERY,
'query' => array(
'field_name' => 'text',
'text' => 'ots text php keyword',
// 'operator' => QueryOperatorConst::PBAND,
'operator' => QueryOperatorConst::PBOR,// Use the minimum_should_match parameter together with the OR logical operator.
'minimum_should_match' => 3
)
),
'sort' => array(
array(
'field_sort' => array(
'field_name' => 'keyword',
'order' => SortOrderConst::SORT_ORDER_ASC
)
),
)
),
'columns_to_get' => array(
'return_type' => ColumnReturnTypeConst::RETURN_SPECIFIED,
'return_names' => array('text')
)
);
$response = $otsClient->search($request);
FAQ
Referências
-
Ao usar um índice de pesquisa para consultar dados, utilize os seguintes métodos de consulta: consulta de termo, consulta de termos, consulta de correspondência total, consulta de correspondência, consulta de frase de correspondência, consulta de prefixo, consulta de intervalo, consulta de curinga, consulta booleana, consulta geográfica, consulta aninhada e consulta de existência. Utilize diferentes métodos de consulta para buscar dados em várias dimensões de acordo com os requisitos de negócio.
Para classificar ou paginar as linhas que atendem às condições da consulta, utilize o recurso de classificação e paginação. Para mais informações, consulte Classificação e paginação.
Para agrupar o conjunto de resultados com base em uma coluna específica, utilize o recurso de colapso (distinct). Assim, os dados do tipo especificado aparecem apenas uma vez nos resultados da consulta. Para mais informações, consulte Colapso (distinct).
Para analisar dados em uma tabela de dados, como obter valores extremos, soma e número total de linhas, execute operações de agregação ou comandos SQL. Para mais informações, consulte Agregação e Consulta SQL.
Para obter rapidamente todas as linhas que atendem às condições da consulta sem a necessidade de classificá-las, chame as operações ParallelScan e ComputeSplits para usar o recurso de varredura paralela. Para mais informações, consulte Varredura paralela.