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, sobrepor add_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 chama handle_query(). Não é necessário sobrepor isso a menos que não queira usar o método nativo extract_context(). Para isso sobrepor handle_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