mirror of
				https://github.com/searxng/searxng
				synced 2024-01-01 19:24:07 +01:00 
			
		
		
		
	add post about introducing offline engines
This commit is contained in:
		
							parent
							
								
									c1ccb25d56
								
							
						
					
					
						commit
						021e1da4c9
					
				
					 4 changed files with 69 additions and 1 deletions
				
			
		|  | @ -6,3 +6,4 @@ Blog | ||||||
| 
 | 
 | ||||||
|    python3 |    python3 | ||||||
|    admin |    admin | ||||||
|  |    intro-offline | ||||||
|  |  | ||||||
							
								
								
									
										65
									
								
								docs/blog/intro-offline.rst
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								docs/blog/intro-offline.rst
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,65 @@ | ||||||
|  | Preparation for offline engines | ||||||
|  | =============================== | ||||||
|  | 
 | ||||||
|  | Offline engines | ||||||
|  | --------------- | ||||||
|  | 
 | ||||||
|  | To extend the functionality of searx, offline engines are going to be introduced. An offline engine is an engine which does not need Internet connection to perform a search and does not use HTTP to communicate. | ||||||
|  | 
 | ||||||
|  | Offline engines can be configured as online engines, by adding those to the `engines` list of `settings.yml`. Thus, searx finds the engine file and imports it. | ||||||
|  | 
 | ||||||
|  | Example skeleton for the new engines: | ||||||
|  | 
 | ||||||
|  | .. code:: python | ||||||
|  | 
 | ||||||
|  |     from subprocess import PIPE, Popen | ||||||
|  | 
 | ||||||
|  |     categories = ['general'] | ||||||
|  |     offline = True | ||||||
|  | 
 | ||||||
|  |     def init(settings): | ||||||
|  |         pass | ||||||
|  | 
 | ||||||
|  |     def search(query, params): | ||||||
|  |         process = Popen(['ls', query], stdout=PIPE) | ||||||
|  |         return_code = process.wait() | ||||||
|  |         if return_code != 0: | ||||||
|  |             raise RuntimeError('non-zero return code', return_code) | ||||||
|  | 
 | ||||||
|  |         results = [] | ||||||
|  |         line = process.stdout.readline() | ||||||
|  |         while line: | ||||||
|  |             result = parse_line(line) | ||||||
|  |             results.append(results) | ||||||
|  | 
 | ||||||
|  |             line = process.stdout.readline() | ||||||
|  | 
 | ||||||
|  |         return results | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | Development progress | ||||||
|  | -------------------- | ||||||
|  | 
 | ||||||
|  | First, a proposal has been created as a Github issue. Then it was moved to the wiki as a design document. You can read it here: https://github.com/asciimoo/searx/wiki/Offline-engines | ||||||
|  | 
 | ||||||
|  | In this development step, searx core was prepared to accept and perform offline searches. Offline search requests are scheduled together with regular offline requests. | ||||||
|  | 
 | ||||||
|  | As offline searches can return arbitrary results depending on the engine, the current result templates were insufficient to present such results. Thus, a new template is introduced which is caplable of presenting arbitrary key value pairs as a table. You can check out the pull request for more details: https://github.com/asciimoo/searx/pull/1700 | ||||||
|  | 
 | ||||||
|  | Next steps | ||||||
|  | ---------- | ||||||
|  | 
 | ||||||
|  | Today, it is possible to create/run an offline engine. However, it is going to be publicly available for everyone who knows the searx instance. So the next step is to introduce token based access for engines. This way administrators are able to limit the access to private engines. | ||||||
|  | 
 | ||||||
|  | Acknowledgement | ||||||
|  | --------------- | ||||||
|  | 
 | ||||||
|  | This development was sponsored by `Search and Discovery Fund`_ of `NLnet Foundation`_ . | ||||||
|  | 
 | ||||||
|  | .. _Search and Discovery Fund: https://nlnet.nl/discovery | ||||||
|  | .. _NLnet Foundation: https://nlnet.nl/ | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | | Happy hacking. | ||||||
|  | | kvch // 2019.10.21 17:03 | ||||||
|  | 
 | ||||||
|  | @ -49,7 +49,7 @@ master_doc = 'index' | ||||||
| 
 | 
 | ||||||
| # General information about the project. | # General information about the project. | ||||||
| project = u'searx' | project = u'searx' | ||||||
| copyright = u'2015-2017, Adam Tauber' | copyright = u'2015-2019, Adam Tauber, Noémi Ványi' | ||||||
| author = u'Adam Tauber' | author = u'Adam Tauber' | ||||||
| 
 | 
 | ||||||
| # The version info for the project you're documenting, acts as replacement for | # The version info for the project you're documenting, acts as replacement for | ||||||
|  |  | ||||||
|  | @ -41,6 +41,8 @@ engine file | ||||||
| +----------------------+-----------+-----------------------------------------+ | +----------------------+-----------+-----------------------------------------+ | ||||||
| | time\_range\_support | boolean   | support search time range               | | | time\_range\_support | boolean   | support search time range               | | ||||||
| +----------------------+-----------+-----------------------------------------+ | +----------------------+-----------+-----------------------------------------+ | ||||||
|  | | offline              | boolean   | engine runs offline                     | | ||||||
|  | +----------------------+-----------+-----------------------------------------+ | ||||||
| 
 | 
 | ||||||
| settings.yml | settings.yml | ||||||
| ~~~~~~~~~~~~ | ~~~~~~~~~~~~ | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Noémi Ványi
						Noémi Ványi