Adaptadores de Busca

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=[])[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