mirror of
				https://github.com/searxng/searxng.git
				synced 2025-10-31 10:37:06 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			545 lines
		
	
	
		
			30 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			545 lines
		
	
	
		
			30 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE html>
 | ||
| 
 | ||
| <html lang="en" data-content_root="../../">
 | ||
|   <head>
 | ||
|     <meta charset="utf-8" />
 | ||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
 | ||
|   <meta name="viewport" content="width=device-width, initial-scale=1">
 | ||
|     <title>Engine Overview — SearXNG Documentation (2025.10.29+dce383881)</title>
 | ||
|     <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=6625fa76" />
 | ||
|     <link rel="stylesheet" type="text/css" href="../../_static/searxng.css?v=52e4ff28" />
 | ||
|     <script src="../../_static/documentation_options.js?v=24fd38dd"></script>
 | ||
|     <script src="../../_static/doctools.js?v=9bcbadda"></script>
 | ||
|     <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
 | ||
|     <script data-project="searxng" data-version="2025.10.29+dce383881" src="../../_static/describe_version.js?v=fa7f30d0"></script>
 | ||
|     <link rel="index" title="Index" href="../../genindex.html" />
 | ||
|     <link rel="search" title="Search" href="../../search.html" />
 | ||
|     <link rel="next" title="Demo Online Engine" href="demo/demo_online.html" />
 | ||
|     <link rel="prev" title="SearXNG’s engines loader" href="engines.html" /> 
 | ||
|   </head><body>
 | ||
|     <div class="related" role="navigation" aria-label="Related">
 | ||
|       <h3>Navigation</h3>
 | ||
|       <ul>
 | ||
|         <li class="right" style="margin-right: 10px">
 | ||
|           <a href="../../genindex.html" title="General Index"
 | ||
|              accesskey="I">index</a></li>
 | ||
|         <li class="right" >
 | ||
|           <a href="../../py-modindex.html" title="Python Module Index"
 | ||
|              >modules</a> |</li>
 | ||
|         <li class="right" >
 | ||
|           <a href="demo/demo_online.html" title="Demo Online Engine"
 | ||
|              accesskey="N">next</a> |</li>
 | ||
|         <li class="right" >
 | ||
|           <a href="engines.html" title="SearXNG’s engines loader"
 | ||
|              accesskey="P">previous</a> |</li>
 | ||
|         <li class="nav-item nav-item-0"><a href="../../index.html">SearXNG Documentation (2025.10.29+dce383881)</a> »</li>
 | ||
|           <li class="nav-item nav-item-1"><a href="../index.html" >Developer documentation</a> »</li>
 | ||
|           <li class="nav-item nav-item-2"><a href="index.html" accesskey="U">Engine Implementations</a> »</li>
 | ||
|         <li class="nav-item nav-item-this"><a href="">Engine Overview</a></li> 
 | ||
|       </ul>
 | ||
|     </div>  
 | ||
| 
 | ||
|     <div class="document">
 | ||
|       <div class="documentwrapper">
 | ||
|         <div class="bodywrapper">
 | ||
|           <div class="body" role="main">
 | ||
|             
 | ||
|   <section id="engine-overview">
 | ||
| <span id="engines-dev"></span><h1>Engine Overview<a class="headerlink" href="#engine-overview" title="Link to this heading">¶</a></h1>
 | ||
| <nav class="contents local" id="contents">
 | ||
| <ul class="simple">
 | ||
| <li><p><a class="reference internal" href="#general-engine-configuration" id="id10">General Engine Configuration</a></p>
 | ||
| <ul>
 | ||
| <li><p><a class="reference internal" href="#engine-file" id="id11">Engine File</a></p></li>
 | ||
| <li><p><a class="reference internal" href="#engine-settings-yml" id="id12">Engine <code class="docutils literal notranslate"><span class="pre">settings.yml</span></code></a></p></li>
 | ||
| <li><p><a class="reference internal" href="#overrides" id="id13">Overrides</a></p></li>
 | ||
| </ul>
 | ||
| </li>
 | ||
| <li><p><a class="reference internal" href="#making-a-request" id="id14">Making a Request</a></p>
 | ||
| <ul>
 | ||
| <li><p><a class="reference internal" href="#passed-arguments-request" id="id15">Passed Arguments (request)</a></p></li>
 | ||
| <li><p><a class="reference internal" href="#specify-request" id="id16">Specify Request</a></p></li>
 | ||
| </ul>
 | ||
| </li>
 | ||
| <li><p><a class="reference internal" href="#making-a-response" id="id17">Making a Response</a></p></li>
 | ||
| </ul>
 | ||
| </nav>
 | ||
| <aside class="sidebar">
 | ||
| <p class="sidebar-title">Further reading ..</p>
 | ||
| <ul class="simple">
 | ||
| <li><p><a class="reference internal" href="../../user/configured_engines.html#configured-engines"><span class="std std-ref">Configured Engines</span></a></p></li>
 | ||
| <li><p><a class="reference internal" href="../../admin/settings/settings_engines.html#settings-engines"><span class="std std-ref">engines:</span></a></p></li>
 | ||
| </ul>
 | ||
| </aside>
 | ||
| <p>SearXNG is a <a class="reference external" href="https://en.wikipedia.org/wiki/Metasearch_engine">metasearch-engine</a>, so it uses different search engines to provide
 | ||
| better results.</p>
 | ||
| <p>Because there is no general search API which could be used for every search
 | ||
| engine, an adapter has to be built between SearXNG and the external search
 | ||
| engines.  Adapters are stored under the folder <a class="extlink-origin reference external" href="https://github.com/searxng/searxng/blob/master/searx/engines">git://searx/engines</a>.</p>
 | ||
| <section id="general-engine-configuration">
 | ||
| <span id="id1"></span><h2><a class="toc-backref" href="#id10" role="doc-backlink">General Engine Configuration</a><a class="headerlink" href="#general-engine-configuration" title="Link to this heading">¶</a></h2>
 | ||
| <p>It is required to tell SearXNG the type of results the engine provides. The
 | ||
| arguments can be set in the engine file or in the settings file (normally
 | ||
| <code class="docutils literal notranslate"><span class="pre">settings.yml</span></code>). The arguments in the settings file override the ones in the
 | ||
| engine file.</p>
 | ||
| <p>It does not matter if an option is stored in the engine file or in the settings.
 | ||
| However, the standard way is the following:</p>
 | ||
| <section id="engine-file">
 | ||
| <span id="id2"></span><h3><a class="toc-backref" href="#id11" role="doc-backlink">Engine File</a><a class="headerlink" href="#engine-file" title="Link to this heading">¶</a></h3>
 | ||
| <table class="docutils align-default" id="id3" style="width: 100%">
 | ||
| <caption><span class="caption-number">Table 2 </span><span class="caption-text">Common options in the engine module</span><a class="headerlink" href="#id3" title="Link to this table">¶</a></caption>
 | ||
| <thead>
 | ||
| <tr class="row-odd"><th class="head"><p>argument</p></th>
 | ||
| <th class="head"><p>type</p></th>
 | ||
| <th class="head"><p>information</p></th>
 | ||
| </tr>
 | ||
| </thead>
 | ||
| <tbody>
 | ||
| <tr class="row-even"><td><p>categories</p></td>
 | ||
| <td><p>list</p></td>
 | ||
| <td><p>categories, in which the engine is working</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-odd"><td><p>paging</p></td>
 | ||
| <td><p>boolean</p></td>
 | ||
| <td><p>support multiple pages</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-even"><td><p>time_range_support</p></td>
 | ||
| <td><p>boolean</p></td>
 | ||
| <td><p>support search time range</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-odd"><td><p>engine_type</p></td>
 | ||
| <td><p>str</p></td>
 | ||
| <td><ul class="simple">
 | ||
| <li><p><code class="docutils literal notranslate"><span class="pre">online</span></code> <a class="reference internal" href="index.html#online-engines"><span class="std std-ref">[ref]</span></a> by
 | ||
| default, other possibles values are:</p></li>
 | ||
| <li><p><code class="docutils literal notranslate"><span class="pre">offline</span></code> <a class="reference internal" href="index.html#offline-engines"><span class="std std-ref">[ref]</span></a></p></li>
 | ||
| <li><p><code class="docutils literal notranslate"><span class="pre">online_dictionary</span></code> <a class="reference internal" href="index.html#online-dictionary"><span class="std std-ref">[ref]</span></a></p></li>
 | ||
| <li><p><code class="docutils literal notranslate"><span class="pre">online_currency</span></code> <a class="reference internal" href="index.html#online-currency"><span class="std std-ref">[ref]</span></a></p></li>
 | ||
| <li><p><code class="docutils literal notranslate"><span class="pre">online_url_search</span></code> <a class="reference internal" href="index.html#online-url-search"><span class="std std-ref">[ref]</span></a></p></li>
 | ||
| </ul>
 | ||
| </td>
 | ||
| </tr>
 | ||
| </tbody>
 | ||
| </table>
 | ||
| </section>
 | ||
| <section id="engine-settings-yml">
 | ||
| <span id="engine-settings"></span><h3><a class="toc-backref" href="#id12" role="doc-backlink">Engine <code class="docutils literal notranslate"><span class="pre">settings.yml</span></code></a><a class="headerlink" href="#engine-settings-yml" title="Link to this heading">¶</a></h3>
 | ||
| <p>For a more  detailed description, see <a class="reference internal" href="../../admin/settings/settings_engines.html#settings-engines"><span class="std std-ref">engines:</span></a> in the <a class="reference internal" href="../../admin/settings/settings.html#settings-yml"><span class="std std-ref">settings.yml</span></a>.</p>
 | ||
| <table class="docutils align-default" id="id4" style="width: 100%">
 | ||
| <caption><span class="caption-number">Table 3 </span><span class="caption-text">Common options in the engine setup (<code class="docutils literal notranslate"><span class="pre">settings.yml</span></code>)</span><a class="headerlink" href="#id4" title="Link to this table">¶</a></caption>
 | ||
| <thead>
 | ||
| <tr class="row-odd"><th class="head"><p>argument</p></th>
 | ||
| <th class="head"><p>type</p></th>
 | ||
| <th class="head"><p>information</p></th>
 | ||
| </tr>
 | ||
| </thead>
 | ||
| <tbody>
 | ||
| <tr class="row-even"><td><p>name</p></td>
 | ||
| <td><p>string</p></td>
 | ||
| <td><p>name of search-engine</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-odd"><td><p>engine</p></td>
 | ||
| <td><p>string</p></td>
 | ||
| <td><p>name of searxng-engine (file name without <code class="docutils literal notranslate"><span class="pre">.py</span></code>)</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-even"><td><p>enable_http</p></td>
 | ||
| <td><p>bool</p></td>
 | ||
| <td><p>enable HTTP (by default only HTTPS is enabled).</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-odd"><td><p>shortcut</p></td>
 | ||
| <td><p>string</p></td>
 | ||
| <td><p>shortcut of search-engine</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-even"><td><p>timeout</p></td>
 | ||
| <td><p>string</p></td>
 | ||
| <td><p>specific timeout for search-engine</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-odd"><td><p>display_error_messages</p></td>
 | ||
| <td><p>boolean</p></td>
 | ||
| <td><p>display error messages on the web UI</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-even"><td><p>proxies</p></td>
 | ||
| <td><p>dict</p></td>
 | ||
| <td><p>set proxies for a specific engine
 | ||
| (e.g. <code class="docutils literal notranslate"><span class="pre">proxies</span> <span class="pre">:</span> <span class="pre">{http:</span> <span class="pre">socks5://proxy:port,</span>
 | ||
| <span class="pre">https:</span> <span class="pre">socks5://proxy:port}</span></code>)</p></td>
 | ||
| </tr>
 | ||
| </tbody>
 | ||
| </table>
 | ||
| </section>
 | ||
| <section id="overrides">
 | ||
| <span id="engine-overrides"></span><h3><a class="toc-backref" href="#id13" role="doc-backlink">Overrides</a><a class="headerlink" href="#overrides" title="Link to this heading">¶</a></h3>
 | ||
| <p>A few of the options have default values in the namespace of the engine’s python
 | ||
| module, but are often overwritten by the settings.  If <code class="docutils literal notranslate"><span class="pre">None</span></code> is assigned to an
 | ||
| option in the engine file, it has to be redefined in the settings, otherwise
 | ||
| SearXNG will not start with that engine (global names with a leading underline can
 | ||
| be <code class="docutils literal notranslate"><span class="pre">None</span></code>).</p>
 | ||
| <p>Here is an very simple example of the global names in the namespace of engine’s
 | ||
| module:</p>
 | ||
| <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># engine dependent config</span>
 | ||
| <span class="n">categories</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'general'</span><span class="p">]</span>
 | ||
| <span class="n">paging</span> <span class="o">=</span> <span class="kc">True</span>
 | ||
| <span class="n">_non_overwritten_global</span> <span class="o">=</span> <span class="s1">'foo'</span>
 | ||
| </pre></div>
 | ||
| </div>
 | ||
| <table class="docutils align-default" id="id5" style="width: 100%">
 | ||
| <caption><span class="caption-number">Table 4 </span><span class="caption-text">The naming of overrides is arbitrary / recommended overrides are:</span><a class="headerlink" href="#id5" title="Link to this table">¶</a></caption>
 | ||
| <thead>
 | ||
| <tr class="row-odd"><th class="head"><p>argument</p></th>
 | ||
| <th class="head"><p>type</p></th>
 | ||
| <th class="head"><p>information</p></th>
 | ||
| </tr>
 | ||
| </thead>
 | ||
| <tbody>
 | ||
| <tr class="row-even"><td><p>base_url</p></td>
 | ||
| <td><p>string</p></td>
 | ||
| <td><p>base-url, can be overwritten to use same
 | ||
| engine on other URL</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-odd"><td><p>number_of_results</p></td>
 | ||
| <td><p>int</p></td>
 | ||
| <td><p>maximum number of results per request</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-even"><td><p>language</p></td>
 | ||
| <td><p>string</p></td>
 | ||
| <td><p>ISO code of language and country like en_US</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-odd"><td><p>api_key</p></td>
 | ||
| <td><p>string</p></td>
 | ||
| <td><p>api-key if required by engine</p></td>
 | ||
| </tr>
 | ||
| </tbody>
 | ||
| </table>
 | ||
| </section>
 | ||
| </section>
 | ||
| <section id="making-a-request">
 | ||
| <span id="engine-request"></span><h2><a class="toc-backref" href="#id14" role="doc-backlink">Making a Request</a><a class="headerlink" href="#making-a-request" title="Link to this heading">¶</a></h2>
 | ||
| <p>To perform a search an URL have to be specified.  In addition to specifying an
 | ||
| URL, arguments can be passed to the query.</p>
 | ||
| <section id="passed-arguments-request">
 | ||
| <span id="engine-request-arguments"></span><h3><a class="toc-backref" href="#id15" role="doc-backlink">Passed Arguments (request)</a><a class="headerlink" href="#passed-arguments-request" title="Link to this heading">¶</a></h3>
 | ||
| <p>These arguments can be used to construct the search query.  Furthermore,
 | ||
| parameters with default value can be redefined for special purposes.</p>
 | ||
| <span id="engine-request-online"></span><table class="docutils align-default" id="id6" style="width: 100%">
 | ||
| <caption><span class="caption-number">Table 5 </span><span class="caption-text">If the <code class="docutils literal notranslate"><span class="pre">engine_type</span></code> is <a class="reference internal" href="../../src/searx.search.processors.html#searx.search.processors.online.OnlineProcessor.get_params" title="searx.search.processors.online.OnlineProcessor.get_params"><code class="xref py py-obj docutils literal notranslate"><span class="pre">online</span></code></a></span><a class="headerlink" href="#id6" title="Link to this table">¶</a></caption>
 | ||
| <thead>
 | ||
| <tr class="row-odd"><th class="head"><p>argument</p></th>
 | ||
| <th class="head"><p>type</p></th>
 | ||
| <th class="head"><p>default-value, information</p></th>
 | ||
| </tr>
 | ||
| </thead>
 | ||
| <tbody>
 | ||
| <tr class="row-even"><td><p>url</p></td>
 | ||
| <td><p>str</p></td>
 | ||
| <td><p><code class="docutils literal notranslate"><span class="pre">''</span></code></p></td>
 | ||
| </tr>
 | ||
| <tr class="row-odd"><td><p>method</p></td>
 | ||
| <td><p>str</p></td>
 | ||
| <td><p><code class="docutils literal notranslate"><span class="pre">'GET'</span></code></p></td>
 | ||
| </tr>
 | ||
| <tr class="row-even"><td><p>headers</p></td>
 | ||
| <td><p>dict</p></td>
 | ||
| <td><p><code class="docutils literal notranslate"><span class="pre">{}</span></code></p></td>
 | ||
| </tr>
 | ||
| <tr class="row-odd"><td><p>data</p></td>
 | ||
| <td><p>dict</p></td>
 | ||
| <td><p><code class="docutils literal notranslate"><span class="pre">{}</span></code></p></td>
 | ||
| </tr>
 | ||
| <tr class="row-even"><td><p>cookies</p></td>
 | ||
| <td><p>dict</p></td>
 | ||
| <td><p><code class="docutils literal notranslate"><span class="pre">{}</span></code></p></td>
 | ||
| </tr>
 | ||
| <tr class="row-odd"><td><p>verify</p></td>
 | ||
| <td><p>bool</p></td>
 | ||
| <td><p><code class="docutils literal notranslate"><span class="pre">True</span></code></p></td>
 | ||
| </tr>
 | ||
| <tr class="row-even"><td><p>headers.User-Agent</p></td>
 | ||
| <td><p>str</p></td>
 | ||
| <td><p>a random User-Agent</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-odd"><td><p>category</p></td>
 | ||
| <td><p>str</p></td>
 | ||
| <td><p>current category, like <code class="docutils literal notranslate"><span class="pre">'general'</span></code></p></td>
 | ||
| </tr>
 | ||
| <tr class="row-even"><td><p>safesearch</p></td>
 | ||
| <td><p>int</p></td>
 | ||
| <td><p><code class="docutils literal notranslate"><span class="pre">0</span></code>, between <code class="docutils literal notranslate"><span class="pre">0</span></code> and <code class="docutils literal notranslate"><span class="pre">2</span></code> (normal, moderate, strict)</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-odd"><td><p>time_range</p></td>
 | ||
| <td><p>Optional[str]</p></td>
 | ||
| <td><p><code class="docutils literal notranslate"><span class="pre">None</span></code>, can be <code class="docutils literal notranslate"><span class="pre">day</span></code>, <code class="docutils literal notranslate"><span class="pre">week</span></code>, <code class="docutils literal notranslate"><span class="pre">month</span></code>, <code class="docutils literal notranslate"><span class="pre">year</span></code></p></td>
 | ||
| </tr>
 | ||
| <tr class="row-even"><td><p>pageno</p></td>
 | ||
| <td><p>int</p></td>
 | ||
| <td><p>current pagenumber</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-odd"><td><p>searxng_locale</p></td>
 | ||
| <td><p>str</p></td>
 | ||
| <td><p>SearXNG’s locale selected by user.  Specific language code like
 | ||
| <code class="docutils literal notranslate"><span class="pre">'en'</span></code>, <code class="docutils literal notranslate"><span class="pre">'en-US'</span></code>, or <code class="docutils literal notranslate"><span class="pre">'all'</span></code> if unspecified.</p></td>
 | ||
| </tr>
 | ||
| </tbody>
 | ||
| </table>
 | ||
| <span id="engine-request-online-dictionary"></span><table class="docutils align-default" id="id7" style="width: 100%">
 | ||
| <caption><span class="caption-number">Table 6 </span><span class="caption-text">If the <code class="docutils literal notranslate"><span class="pre">engine_type</span></code> is <a class="reference internal" href="../../src/searx.search.processors.html#searx.search.processors.online_dictionary.OnlineDictionaryProcessor.get_params" title="searx.search.processors.online_dictionary.OnlineDictionaryProcessor.get_params"><code class="xref py py-obj docutils literal notranslate"><span class="pre">online_dictionary</span></code></a>,
 | ||
|         in addition to the <a class="reference internal" href="#engine-request-online"><span class="std std-ref">online</span></a> arguments:</span><a class="headerlink" href="#id7" title="Link to this table">¶</a></caption>
 | ||
| <thead>
 | ||
| <tr class="row-odd"><th class="head"><p>argument</p></th>
 | ||
| <th class="head"><p>type</p></th>
 | ||
| <th class="head"><p>default-value, information</p></th>
 | ||
| </tr>
 | ||
| </thead>
 | ||
| <tbody>
 | ||
| <tr class="row-even"><td><p>from_lang</p></td>
 | ||
| <td><p>str</p></td>
 | ||
| <td><p>specific language code like <code class="docutils literal notranslate"><span class="pre">'en_US'</span></code></p></td>
 | ||
| </tr>
 | ||
| <tr class="row-odd"><td><p>to_lang</p></td>
 | ||
| <td><p>str</p></td>
 | ||
| <td><p>specific language code like <code class="docutils literal notranslate"><span class="pre">'en_US'</span></code></p></td>
 | ||
| </tr>
 | ||
| <tr class="row-even"><td><p>query</p></td>
 | ||
| <td><p>str</p></td>
 | ||
| <td><p>the text query without the languages</p></td>
 | ||
| </tr>
 | ||
| </tbody>
 | ||
| </table>
 | ||
| <span id="engine-request-online-currency"></span><table class="docutils align-default" id="id8" style="width: 100%">
 | ||
| <caption><span class="caption-number">Table 7 </span><span class="caption-text">If the <code class="docutils literal notranslate"><span class="pre">engine_type</span></code> is <a class="reference internal" href="../../src/searx.search.processors.html#searx.search.processors.online_currency.OnlineCurrencyProcessor.get_params" title="searx.search.processors.online_currency.OnlineCurrencyProcessor.get_params"><code class="xref py py-obj docutils literal notranslate"><span class="pre">online_currency</span></code></a>,
 | ||
|         in addition to the <a class="reference internal" href="#engine-request-online"><span class="std std-ref">online</span></a> arguments:</span><a class="headerlink" href="#id8" title="Link to this table">¶</a></caption>
 | ||
| <thead>
 | ||
| <tr class="row-odd"><th class="head"><p>argument</p></th>
 | ||
| <th class="head"><p>type</p></th>
 | ||
| <th class="head"><p>default-value, information</p></th>
 | ||
| </tr>
 | ||
| </thead>
 | ||
| <tbody>
 | ||
| <tr class="row-even"><td><p>amount</p></td>
 | ||
| <td><p>float</p></td>
 | ||
| <td><p>the amount to convert</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-odd"><td><p>from</p></td>
 | ||
| <td><p>str</p></td>
 | ||
| <td><p>ISO 4217 code</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-even"><td><p>to</p></td>
 | ||
| <td><p>str</p></td>
 | ||
| <td><p>ISO 4217 code</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-odd"><td><p>from_name</p></td>
 | ||
| <td><p>str</p></td>
 | ||
| <td><p>currency name</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-even"><td><p>to_name</p></td>
 | ||
| <td><p>str</p></td>
 | ||
| <td><p>currency name</p></td>
 | ||
| </tr>
 | ||
| </tbody>
 | ||
| </table>
 | ||
| <span id="engine-request-online-url-search"></span><table class="docutils align-default" id="id9" style="width: 100%">
 | ||
| <caption><span class="caption-number">Table 8 </span><span class="caption-text">If the <code class="docutils literal notranslate"><span class="pre">engine_type</span></code> is <a class="reference internal" href="../../src/searx.search.processors.html#searx.search.processors.online_url_search.OnlineUrlSearchProcessor.get_params" title="searx.search.processors.online_url_search.OnlineUrlSearchProcessor.get_params"><code class="xref py py-obj docutils literal notranslate"><span class="pre">online_url_search</span></code></a>,
 | ||
|         in addition to the <a class="reference internal" href="#engine-request-online"><span class="std std-ref">online</span></a> arguments:</span><a class="headerlink" href="#id9" title="Link to this table">¶</a></caption>
 | ||
| <thead>
 | ||
| <tr class="row-odd"><th class="head"><p>argument</p></th>
 | ||
| <th class="head"><p>type</p></th>
 | ||
| <th class="head"><p>default-value, information</p></th>
 | ||
| </tr>
 | ||
| </thead>
 | ||
| <tbody>
 | ||
| <tr class="row-even"><td><p>search_url</p></td>
 | ||
| <td><p>dict</p></td>
 | ||
| <td><p>URLs from the search query:</p>
 | ||
| <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="p">{</span>
 | ||
|   <span class="s1">'http'</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
 | ||
|   <span class="s1">'ftp'</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
 | ||
|   <span class="s1">'data:image'</span><span class="p">:</span> <span class="nb">str</span>
 | ||
| <span class="p">}</span>
 | ||
| </pre></div>
 | ||
| </div>
 | ||
| </td>
 | ||
| </tr>
 | ||
| </tbody>
 | ||
| </table>
 | ||
| </section>
 | ||
| <section id="specify-request">
 | ||
| <h3><a class="toc-backref" href="#id16" role="doc-backlink">Specify Request</a><a class="headerlink" href="#specify-request" title="Link to this heading">¶</a></h3>
 | ||
| <p>The function <a class="reference internal" href="demo/demo_online.html#searx.engines.demo_online.request" title="searx.engines.demo_online.request"><code class="xref py py-func docutils literal notranslate"><span class="pre">def</span> <span class="pre">request(query,</span> <span class="pre">params):</span></code></a> always returns the <code class="docutils literal notranslate"><span class="pre">params</span></code> variable, the
 | ||
| following parameters can be used to specify a search request:</p>
 | ||
| <table class="docutils align-default" style="width: 100%">
 | ||
| <thead>
 | ||
| <tr class="row-odd"><th class="head"><p>argument</p></th>
 | ||
| <th class="head"><p>type</p></th>
 | ||
| <th class="head"><p>information</p></th>
 | ||
| </tr>
 | ||
| </thead>
 | ||
| <tbody>
 | ||
| <tr class="row-even"><td><p>url</p></td>
 | ||
| <td><p>str</p></td>
 | ||
| <td><p>requested url</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-odd"><td><p>method</p></td>
 | ||
| <td><p>str</p></td>
 | ||
| <td><p>HTTP request method</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-even"><td><p>headers</p></td>
 | ||
| <td><p>dict</p></td>
 | ||
| <td><p>HTTP header information</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-odd"><td><p>data</p></td>
 | ||
| <td><p>dict</p></td>
 | ||
| <td><p>HTTP data information</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-even"><td><p>cookies</p></td>
 | ||
| <td><p>dict</p></td>
 | ||
| <td><p>HTTP cookies</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-odd"><td><p>verify</p></td>
 | ||
| <td><p>bool</p></td>
 | ||
| <td><p>Performing SSL-Validity check</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-even"><td><p>allow_redirects</p></td>
 | ||
| <td><p>bool</p></td>
 | ||
| <td><p>Follow redirects</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-odd"><td><p>max_redirects</p></td>
 | ||
| <td><p>int</p></td>
 | ||
| <td><p>maximum redirects, hard limit</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-even"><td><p>soft_max_redirects</p></td>
 | ||
| <td><p>int</p></td>
 | ||
| <td><p>maximum redirects, soft limit. Record an error but don’t stop the engine</p></td>
 | ||
| </tr>
 | ||
| <tr class="row-odd"><td><p>raise_for_httperror</p></td>
 | ||
| <td><p>bool</p></td>
 | ||
| <td><p>True by default: raise an exception if the HTTP code of response is >= 300</p></td>
 | ||
| </tr>
 | ||
| </tbody>
 | ||
| </table>
 | ||
| </section>
 | ||
| </section>
 | ||
| <section id="making-a-response">
 | ||
| <h2><a class="toc-backref" href="#id17" role="doc-backlink">Making a Response</a><a class="headerlink" href="#making-a-response" title="Link to this heading">¶</a></h2>
 | ||
| <p>In the <code class="docutils literal notranslate"><span class="pre">response</span></code> function of the engine, the HTTP response (<code class="docutils literal notranslate"><span class="pre">resp</span></code>) is
 | ||
| parsed and a list of results is returned.</p>
 | ||
| <p>A engine can append result-items of different media-types and different
 | ||
| result-types to the result list.  The list of the result items is render to HTML
 | ||
| by templates.  For more details read section:</p>
 | ||
| <ul class="simple">
 | ||
| <li><p><a class="reference internal" href="../templates.html#simple-theme-templates"><span class="std std-ref">Simple Theme Templates</span></a></p></li>
 | ||
| <li><p><a class="reference internal" href="../result_types/index.html#result-types"><span class="std std-ref">Result Types</span></a></p></li>
 | ||
| </ul>
 | ||
| </section>
 | ||
| </section>
 | ||
| 
 | ||
| 
 | ||
|             <div class="clearer"></div>
 | ||
|           </div>
 | ||
|         </div>
 | ||
|       </div>
 | ||
|   <span id="sidebar-top"></span>
 | ||
|       <div class="sphinxsidebar" role="navigation" aria-label="Main">
 | ||
|         <div class="sphinxsidebarwrapper">
 | ||
|   
 | ||
|     
 | ||
|             <p class="logo"><a href="../../index.html">
 | ||
|               <img class="logo" src="../../_static/searxng-wordmark.svg" alt="Logo of SearXNG"/>
 | ||
|             </a></p>
 | ||
|   
 | ||
| 
 | ||
| <h3><a href="../../index.html">Table of Contents</a></h3>
 | ||
| <ul class="current">
 | ||
| <li class="toctree-l1"><a class="reference internal" href="../../user/index.html">User information</a></li>
 | ||
| <li class="toctree-l1"><a class="reference internal" href="../../own-instance.html">Why use a private instance?</a></li>
 | ||
| <li class="toctree-l1"><a class="reference internal" href="../../admin/index.html">Administrator documentation</a></li>
 | ||
| <li class="toctree-l1 current"><a class="reference internal" href="../index.html">Developer documentation</a><ul class="current">
 | ||
| <li class="toctree-l2"><a class="reference internal" href="../quickstart.html">Development Quickstart</a></li>
 | ||
| <li class="toctree-l2"><a class="reference internal" href="../commits.html">Git Commits & Change Management</a></li>
 | ||
| <li class="toctree-l2"><a class="reference internal" href="../contribution_guide.html">How to contribute</a></li>
 | ||
| <li class="toctree-l2"><a class="reference internal" href="../extended_types.html">Extended Types</a></li>
 | ||
| <li class="toctree-l2 current"><a class="reference internal" href="index.html">Engine Implementations</a><ul class="current">
 | ||
| <li class="toctree-l3"><a class="reference internal" href="enginelib.html">Engine Library</a></li>
 | ||
| <li class="toctree-l3"><a class="reference internal" href="engines.html">SearXNG’s engines loader</a></li>
 | ||
| <li class="toctree-l3 current"><a class="current reference internal" href="#">Engine Overview</a><ul>
 | ||
| <li class="toctree-l4"><a class="reference internal" href="#general-engine-configuration">General Engine Configuration</a><ul>
 | ||
| <li class="toctree-l5"><a class="reference internal" href="#engine-file">Engine File</a></li>
 | ||
| <li class="toctree-l5"><a class="reference internal" href="#engine-settings-yml">Engine <code class="docutils literal notranslate"><span class="pre">settings.yml</span></code></a></li>
 | ||
| <li class="toctree-l5"><a class="reference internal" href="#overrides">Overrides</a></li>
 | ||
| </ul>
 | ||
| </li>
 | ||
| <li class="toctree-l4"><a class="reference internal" href="#making-a-request">Making a Request</a><ul>
 | ||
| <li class="toctree-l5"><a class="reference internal" href="#passed-arguments-request">Passed Arguments (request)</a></li>
 | ||
| <li class="toctree-l5"><a class="reference internal" href="#specify-request">Specify Request</a></li>
 | ||
| </ul>
 | ||
| </li>
 | ||
| <li class="toctree-l4"><a class="reference internal" href="#making-a-response">Making a Response</a></li>
 | ||
| </ul>
 | ||
| </li>
 | ||
| <li class="toctree-l3"><a class="reference internal" href="index.html#resultlist-and-engines">ResultList and engines</a></li>
 | ||
| <li class="toctree-l3"><a class="reference internal" href="index.html#engine-types">Engine Types</a></li>
 | ||
| </ul>
 | ||
| </li>
 | ||
| <li class="toctree-l2"><a class="reference internal" href="../result_types/index.html">Result Types</a></li>
 | ||
| <li class="toctree-l2"><a class="reference internal" href="../templates.html">Simple Theme Templates</a></li>
 | ||
| <li class="toctree-l2"><a class="reference internal" href="../search_api.html">Search API</a></li>
 | ||
| <li class="toctree-l2"><a class="reference internal" href="../plugins/index.html">Plugins</a></li>
 | ||
| <li class="toctree-l2"><a class="reference internal" href="../answerers/index.html">Answerers</a></li>
 | ||
| <li class="toctree-l2"><a class="reference internal" href="../translation.html">Translation</a></li>
 | ||
| <li class="toctree-l2"><a class="reference internal" href="../makefile.html">Makefile & <code class="docutils literal notranslate"><span class="pre">./manage</span></code></a></li>
 | ||
| <li class="toctree-l2"><a class="reference internal" href="../reST.html">reST primer</a></li>
 | ||
| <li class="toctree-l2"><a class="reference internal" href="../searxng_extra/index.html">Tooling box <code class="docutils literal notranslate"><span class="pre">searxng_extra</span></code></a></li>
 | ||
| </ul>
 | ||
| </li>
 | ||
| <li class="toctree-l1"><a class="reference internal" href="../../utils/index.html">DevOps tooling box</a></li>
 | ||
| <li class="toctree-l1"><a class="reference internal" href="../../src/index.html">Source-Code</a></li>
 | ||
| </ul>
 | ||
| 
 | ||
|   <h3>Project Links</h3>
 | ||
|   <ul>
 | ||
|     <li><a href="https://github.com/searxng/searxng/tree/master">Source</a>
 | ||
|   
 | ||
|     <li><a href="https://github.com/searxng/searxng/wiki">Wiki</a>
 | ||
|   
 | ||
|     <li><a href="https://searx.space">Public instances</a>
 | ||
|   
 | ||
|     <li><a href="https://github.com/searxng/searxng/issues">Issue Tracker</a>
 | ||
|   </ul><h3>Navigation</h3>
 | ||
| <ul>
 | ||
|   <li><a href="../../index.html">Overview</a>
 | ||
|     <ul>
 | ||
|       <li><a href="../index.html">Developer documentation</a>
 | ||
|         <ul>
 | ||
|       <li><a href="index.html">Engine Implementations</a>
 | ||
|         <ul>
 | ||
|           <li>Previous: <a href="engines.html" title="previous chapter">SearXNG’s engines loader</a>
 | ||
|           <li>Next: <a href="demo/demo_online.html" title="next chapter">Demo Online Engine</a></ul>
 | ||
|       </li></ul>
 | ||
|       </li>
 | ||
|     </ul>
 | ||
|   </li>
 | ||
| </ul>
 | ||
| <search id="searchbox" style="display: none" role="search">
 | ||
|   <h3 id="searchlabel">Quick search</h3>
 | ||
|     <div class="searchformwrapper">
 | ||
|     <form class="search" action="../../search.html" method="get">
 | ||
|       <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
 | ||
|       <input type="submit" value="Go" />
 | ||
|     </form>
 | ||
|     </div>
 | ||
| </search>
 | ||
| <script>document.getElementById('searchbox').style.display = "block"</script>
 | ||
|   <div role="note" aria-label="source link">
 | ||
|     <h3>This Page</h3>
 | ||
|     <ul class="this-page-menu">
 | ||
|       <li><a href="../../_sources/dev/engines/engine_overview.rst.txt"
 | ||
|             rel="nofollow">Show Source</a></li>
 | ||
|     </ul>
 | ||
|    </div>
 | ||
|         </div>
 | ||
|       </div>
 | ||
|       <div class="clearer"></div>
 | ||
|     </div>
 | ||
|     <div class="footer" role="contentinfo">
 | ||
|     © Copyright SearXNG team.
 | ||
|     </div>
 | ||
|   </body>
 | ||
| </html> |