Adaptadores de Busca¶
To create a custom search adapter you will need to subclass the
BaseSearch
class. Then create an instance of the new class and pass
that as the search keyword argument when you create the WebSupport
object:
support = WebSupport(srcdir=srcdir,
builddir=builddir,
search=MySearch())
Para mais informações sobre criar adaptador de busca personalizado, favor ver a documentação da classe abaixo BaseSearch
.
- class sphinxcontrib.websupport.search.BaseSearch[código fonte]¶
Definir o interface para adaptadores de busca.
Alterado na versão 1.6: BaseSearch classe foi movida para sphinxcontrib.websupport.search em sphinx.websupport.search.
Métodos¶
Os seguintes métodos são definidos na classe BaseSearch. Alguns
métodos não precisar ser sobrepostos, mas ( add_document()
e handle_query()
) devem ser sobrepostos com sua subclasse. Para um exemplo prático, veja o adaptador nativo do whoosh.
- BaseSearch.init_indexing(changed=[])[código fonte]¶
Chamado pelo construtor para inicializar o indexador de busca. changed é uma lista de nome de páginas que serão reindexadas. Pode serem removidas algumas antes que a indexação começar.
- Parâmetros:
changed – uma lista de nome de páginas que serão reindexadas
- BaseSearch.finish_indexing()[código fonte]¶
Chamado pelo construtor quando gravação estiver completa. Use isso para executar qualquer finalização ou ações de limpeza após a indexação estar completa.
- BaseSearch.feed(pagename, filename, title, doctree)[código fonte]¶
Chamado pelo construtor para adicionar doctree em um índice. converte o doctree em texto e passa-o para
add_document()
. Provavelmente não deseja sobrepor isso a menos que seja necessário acessar doctree. Nesse caso, sobreporadd_document()
.- Parâmetros:
pagename – o nome da página que será indexada
filename – nome do arquivo fonte original
title – o título da página que será indexada
doctree – é a representação docutils doctree da página
- BaseSearch.add_document(pagename, filename, title, text)[código fonte]¶
Chamado por
feed()
para adicionar um documento no índice de busca. Esse método deve fazer o necessário para adicionar um simples documento no índice de busca.pagename é o nome da página que está sendo indexada. É a combinação dos arquivos fonte relativa ao caminho e nome do arquivo, sem a extensão. Por exemplo se o arquivo fonte é “ext/builders.rst”, então pagename deve ser “ext/builders”. Isso será necessário nos resultados da pesquisa quando processar consulta.
- Parâmetros:
pagename – O nome da página que está sendo indexada
filename – nome do arquivo fonte original
title – título da página
text – o texto completo da página
- BaseSearch.query(q)[código fonte]¶
Chamada pela api web para obter resultados de busca. Esse método compila expressões regulares para usá-las quando extrair
extracting context
, após o que chamahandle_query()
. Não é necessário sobrepor isso a menos que não queira usar o método nativoextract_context()
. Para isso sobreporhandle_query()
.- Parâmetros:
q – a string de consulta da busca
- BaseSearch.handle_query(q)[código fonte]¶
Chamado pelo
query()
para recuperar resultados na busca da consulta q. Pode retornar tuples iterativas contendo o seguinte formato:(<path>, <title>, <context>)
path e title são os mesmos valores quando passados para
add_document()
e context, podendo ser um snippet de texto envolvido na busca ou consulta do documento.O método
extract_context()
é fornecido como uma maneira simples de criar o context.- Parâmetros:
q – consulta de busca
- BaseSearch.extract_context(text, length=240)[código fonte]¶
Extrair o contexto da consulta de busca do texto completo do documento
- Parâmetros:
text – o texto completo do documento para ser criado contexto para
length – o tamanho do snippet do contexto para retornar