Busca Avançada

A ferramenta de Busca é conduzida por um índice que contém vários índices secundários. Ao usar a ferramenta de pesquisa básica, apenas 2 destes índices são usados​​: o índice contexto, e o índice conteúdo. O índice conteúdo contém um índice de texto armazenado e indexado. Isto significa que um documento do Word enviado para Repositório terá todo o texto extraído e indexado, enquanto um pacote de vídeo pode ter tido apenas os metadados indexados. Quando os resultados da pesquisa são retornados, é esse conteúdo que é mostrado com os termos correspondentes em destaque.

O índice contexto fornece um índice de palavra-chave da fonte do conteúdo. Este é o worksite ou curso, que contém o conteúdo. Quando a ferramenta de busca atua em uma pesquisa básica, ela adiciona um termo de pesquisa de +content:<currentsiteid> onde <currentsiteid> é o contexto ou o id do site onde a busca está sendo realizada. Isso pode ser traduzido como "resultados devem vir do site atual".

Você pode procurar por termos dentro de qualquer um dos índices. Por exemplo, para procurar somente em anúncios, você pode usar os termos de busca +tool:announcement +content:cowslip que só voltará anúncios contendo a palavra cowslip.

O índice contém atualmente os seguintes índices nomeados.

Pesquisa de Informação Lucene

O Mecanismo de Consulta é baseado no Apache Lucene. Para completar a documentação de Consulta Apache, veja mais informações podem ser encontradas em http://lucene.apache.org/java/docs/queryparsersyntax.html

Termos

A consulta é dividida em termos e operadores. Existem dois tipos de termos: Termos simples e frases.

Um termo simples é uma única palavra, como "teste" ou "Olá".

A frase é um grupo de palavras entre aspas duplas, como "Olá boneca".

Vários termos podem ser combinados em conjunto com os operadores booleanos para formar uma consulta mais complexa (ver abaixo).

Campos

Lucene suporta dados em campo. Ao realizar uma pesquisa, você pode especificar um campo, ou usar o campo padrão. Os nomes dos campos e do campo padrão é específico de implementação.

Você pode pesquisar qualquer campo digitando o nome do campo seguido por dois pontos ":" e então o termo que você está procurando.

Como exemplo, vamos supor que um índice Lucene contém dois campos, título e texto e texto é o campo padrão. Se você quiser encontrar o documento intitulado "The Right Way", que contém o texto "don't go this way", você pode inserir:

title:"The Right Way" AND text:go

ou

title:"Do it right" AND right

Uma vez que o texto é o campo padrão, o indicador de campo não é necessário.

Nota: O campo só é válido para o período que precede diretamente, de modo a consulta

title:Do it right

Só vai encontrar "Do" no campo título. Ele vai encontrar "it" e "right" no campo padrão (neste caso, o campo de texto).

Modificadores do termo

Lucene suporta a modificação de termos de consulta para fornecer uma ampla gama de opções de busca.

Pesquisas curinga

Lucene suporta pesquisas curinga simples e múltiplos caracteres.

Para realizar uma pesquisa curinga com caracteres simples usar o símbolo "?".

Para realizar uma pesquisa curinga com múltiplos caracteres usar o símbolo "*".

A busca de caracteres curinga procura por termos que correspondem a esse caráter único. Por exemplo, para pesquisar por "text" ou "test", você pode usar a busca:

te?t

Múltiplos caracteres curinga procura por 0 ou mais caracteres. Por exemplo, para pesquisar por test, tests ou tester, você pode usar a busca:

test*

Você também pode utilizar os caracteres coringa no meio de um termo.

te*t

Nota: Você não pode usar um símbolo * ou ? como o primeiro caractere de uma pesquisa.

Pesquisas Difusas

Lucene suporta pesquisas difusas com base na distância Levenshtein. Para fazer uma pesquisa fuzzy usar o til, "~", símbolo no final de um Termo única palavra. Por exemplo, para pesquisar um termo semelhante na escrita de "roaming" usar a pesquisa difusa:

roam~

Esta pesquisa irá encontrar termos como foam e roams.

Iniciando com 'Lucene 1.9' um parâmetro (opcional) adicional pode especificar a semelhança requerida. O valor situa-se entre 0 e 1, com um valor próximo de apenas 1 termos com uma maior similaridade serão combinados. Por exemplo:

roam~0.8

O padrão que é usado, se o parâmetro não é dado, é 0.5.

Pesquisas de Proximidade

Lucene suporta palavras achadas dentro de uma distância específica. Para fazer uma pesquisa por proximidade usar o símbolo til, "~", no final de uma frase. Por exemplo, para procurar "apache" e "jakarta" dentro de 10 palavras de cada documento, use a pesquisa:

"jakarta apache"~10

Pesquisas gama

Pesquisas Gama permitem combinar documentos cujo campo (s) são valores entre o limite inferior e superior especificado pela consulta Gama. Consultas de intervalo podem ser inclusiva ou exclusiva dos limites superiores e inferiores. A ordenação é feita lexicograficamente.

mod_date:[20020101 TO 20030101]

Isto irá encontrar documentos cujo campos mod_date têm valores entre 20020101 e 20030101, inclusive. Observe que as consultas Gama não estão reservadas para campos de data. Você também pode usar consultas de intervalo com campos não-data:

title:{Aida TO Carmen}

Isso localizará todos os documentos cujos títulos estão entre Aida e Carmen, mas não incluindo Aida e Carmen.

Consultas gama inclusiva são indicados por colchetes. Consultas gama exclusiva são indicadas por colchetes.

Reforçando um termo

Lucene fornece o nível de relevância dos documentos correspondentes com base nos termos encontrados. Para impulsionar um termo usado o acento circunflexo "^", símbolo com um fator de boost (um número) no final do termo que você está procurando.

Reforço permite que você controle a relevância de um documento, aumentando o seu prazo. Por exemplo, se você está procurando por

jakarta apache

e deseja que o termo "jakarta" seja mais relevante impulsioná-lo usando o símbolo ^ juntamente com o fator boost ao lado do termo. Você deverá digitar:

jakarta^4 apache

Isso fará com que os documentos com o termo jakarta pareça mais relevantes. Você também pode usar termos de frase boost, como no exemplo:

"jakarta apache"^4 "Apache Lucene"

Por padrão, o fator de boost é 1. Embora o fator boost deve ser positivo, ele pode ser inferior a 1 (por exemplo 0,2)

Operadores booleanos

Operadores booleanos permitem que termos sejam combinados através de operadores lógicos. Lucene suporta AND, "+", OR, NOT e "-" como Operadores booleanos(Nota: Operadores booleanos deve estar TODOS EM CAPS). OR

O operador OR é o operador de conjunção padrão. Isto significa que, se não houver nenhum operador booleano entre dois termos, o operador OR é usado. O operador OR liga dois termos e encontra um documento se um dos termos existem em um documento. Isto é equivalente a uma união entre conjuntos. O símbolo || pode ser usado no lugar da palavra OR.

Para pesquisar documentos que contenham "jakarta apache" ou apenas "jakarta" use a consulta:

"jakarta apache" jakarta

ou

"jakarta apache" OR jakarta

AND

O operador AND corresponde a documentos em que ambos os termos existem em qualquer lugar do texto de um documento simples. Isto é equivalente a uma intersecção usando conjuntos. O símbolo && pode ser usado no lugar da palavra AND.

Para pesquisar documentos que contenham "jakarta apache" e "Apache Lucene" use a consulta:

"jakarta apache" AND "Apache Lucene"

+

O operador "+" exige que o termo após o símbolo "+" exista em algum lugar em um campo de um único documento.

Para pesquisar documentos que devam conter "jakarta" e pode conter "lucene" use a consulta:

+jakarta apache

NOT

O operador NOT exclui documentos que contenham o termo após NOT. Isto é equivalente a uma diferença usando conjuntos. O símbolo ! pode ser usado no lugar da palavra NOT.

Para pesquisar documentos que contenham "jakarta apache" mas não "Apache Lucene" use a consulta:

"jakarta apache" NOT "Apache Lucene"

Nota: O operador NOT não pode ser usado com apenas um termo. Por exemplo, a seguinte pesquisa não retornará nenhum resultado:

NOT "jakarta apache"

-

O operador "-" exclui documentos que contenham o termo após o símbolo "-".

Para pesquisar documentos que contenham "jakarta apache" mas não "Apache Lucene" use a consulta:

"jakarta apache" -"Apache Lucene"

Agrupamento

Lucene suporta o uso de parênteses para agrupar cláusulas para formar sub-consultas. Isto pode ser muito útil se você quiser controlar a lógica booleana para uma consulta.

Para procurar por qualquer "jakarta" ou "apache" e "site" use a consulta:

(jakarta OR apache) AND website

Campo Agrupamento

Lucene suporta o uso de parênteses para agrupar várias cláusulas de um único campo.

Para buscar um título que contém a palavra "return" e a frase "pink panther" use a consulta:

title:(+return +"pink panther")

Escapando caracteres especiais

Lucene suporta escapar caracteres especiais que fazem parte da sintaxe de consulta. A lista atual caracteres especiais são

+ - && || ! ( ) { } [ ] ^ " ~ * ? : \

Para escapar desses caracteres use o \ antes do caractere. Por exemplo, para pesquisar (1 +1): 2 use a consulta:

\(1\+1\)\:2