アダプタの検索

カスタム検索アダプタを作成するためには、 BaseSearch 級友たち。そして新しいクラスのインスタンスを作成して search キーワードパラメータ WebSupport 対象::

support = WebSupport(srcdir=srcdir,
                     builddir=builddir,
                     search=MySearch())

カスタム検索アダプタの作成についての詳細は、参照 BaseSearch 下のクラスです。

class sphinxcontrib.websupport.search.BaseSearch[ソース]

検索アダプタのインタフェースを定義する.

バージョン 1.6 で変更: BaseSearchクラスはsphinx.websupport.searchからsphinxcontri.websupport.searchに移動する.

方法

BaseSearchクラスでは以下の手法を定義している.書き換える必要のない方法もありますが方法もあります (add_document() そして handle_query() )は、サブクラスで書き換えられなければなりません。有効な例を得るためには、woosh用の内蔵アダプタを見てください。

BaseSearch.init_indexing(changed=[])[ソース]

検索インデックスを初期化するために生成器によって呼び出される。 changed 再索引されるページ名リストである.インデックス作成を開始する前に、検索インデックスからこれらの内容を削除したい場合があります。

パラメータ

changed -- インデックスを新たに作成するページ名リスト

BaseSearch.finish_indexing()[ソース]

ジェネレータは書き込みが完了したときに呼び出す.このオプションを使用して、インデックス付けが完了した後に任意の終了またはクリーニング操作を実行することができます。

BaseSearch.feed(pagename, filename, title, doctree)[ソース]

文書木をインデックスに追加するために生成器によって呼び出される.将 doctree テキストを送信して伝達します add_document() それがそうです。アクセスが必要でなければ、この設定を書き換えたくないかもしれません doctree それがそうです。超覆. add_document() 代わりに。

パラメータ
  • pagename -- インデックスを作成するページの名前

  • filename -- オリジナルソースファイルの名前

  • title -- インデックスを作成するページのタイトル

  • doctree -- ページのdocutils文書木表示形式である.

BaseSearch.add_document(pagename, filename, title, text)[ソース]

発信者. feed() 文書を検索インデックスに追加する場合は、以下の操作を実行してください。この方法では,単一の文書を検索インデックスに追加するために必要なすべての操作を完了すべきである.

pagename インデックスされたページの名前。これは,ソースファイルの相対パスとファイル名の組合せであり,拡張子を持たない.例えば、ソースファイルが“ext/builders.rst”である場合、 pagename “EXT/BUDERS”だと思います。クエリを処理する際には,検索結果とともに返す必要がある.

パラメータ
  • pagename -- インデックス作成中のページの名前

  • filename -- オリジナルソースファイルの名前

  • title -- ページタイトル

  • text -- ページ全文

BaseSearch.query(q)[ソース]

検索結果を取得するためにWebサポートAPIが呼び出される.この方法では,以下の場合に用いる正規表現をコンパイルする. extracting context そして呼びます handle_query() それがそうです。含まれているものを使いたくない限り extract_context() 方法です。超覆. handle_query() 代わりに。

パラメータ

q -- クエリ文字列を検索します。

BaseSearch.handle_query(q)[ソース]

発信者. query() 検索クエリの検索結果を検索するには、以下の操作を実行してください q それがそうです。これは、以下のフォーマットを含むタプルの反復可能な配列を返すべきである。

(<path>, <title>, <context>)

path そして title そして伝達されています add_document() そして、 context 文書中で検索クエリの周囲のテキストを検索する短いテキストセグメントであるべきである.

♪the extract_context() 方法は簡単な方法として context それがそうです。

パラメータ

q -- 検索クエリ

BaseSearch.extract_context(text, length=240)[ソース]

文書の完全内容から検索クエリの文脈を抽出する text それがそうです。

パラメータ
  • text -- 文脈を作成するための文書の全文

  • length -- 返すコンテキストコードセグメントの長さ.