Search adapters¶
Para criar um adaptador de pesquisa personalizado, será necessário criar uma subclasse de BaseSearch
. Em seguida, crie uma instância da nova classe e passe o argumento nomeado search ao criar o objeto WebSupport
:
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: Sequence[str] = ()) None [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