searxng/searx
Markus Heiser 1184caa0fd [mod] RangeTable - fast lookup of a integer (IP) in a range table
This patch implements a table of ranges.  A *range* is a series of integers,
e.g. 0-10 with start value 0 and end value 10.

Start and end values are stored in a two-column table, the RangeTable.  This
table is stored in Redis in a sorted list and a ZRANGEBYSCORE query can be used
to determine if a particular integer is contained in one of the ranges in the
table.

The ZRANGEBYSCORE query scales with O(log(N)). To make it more clear: a query in
a table with 1 million ranges takes just twice as long as the query in a table
with 1000 ranges.

A RangeTable is excellent for IP ranges and ultra-fast queries to see if an
IP (which is nothing but an integer) is contained in one of the ranges of the
table.

Typical applications are e.g. large IP block lists or network ranges.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-10-20 14:55:30 +02:00
..
answerers [mod] random answerer: add random hex color generator 2023-08-27 18:59:54 +02:00
botdetection [fix] limiter / botdetection: remove http_connection method 2023-10-01 20:24:22 +02:00
data [feat] duckduckgo: support for videos and news 2023-10-09 06:53:43 +02:00
enginelib [fix] spelling 2023-09-18 16:20:27 +02:00
engines fixing results parsing brave 2023-10-13 11:47:30 +02:00
infopage [mod] search-syntax.md: add tutorial about the feeling lucky feature 2023-09-21 15:17:23 +02:00
metrics [fix] spelling 2023-09-18 16:20:27 +02:00
network [fix] spelling 2023-09-18 16:20:27 +02:00
plugins add new parameter called server.public_instance 2023-09-25 22:31:14 +02:00
search [feat] implement feeling lucky feature 2023-09-19 09:40:57 +02:00
static [build] /static 2023-10-13 12:56:29 +02:00
templates/simple [fix] categories.html: can't select social media category using search on category select 2023-09-28 10:45:49 +02:00
tools [mod] tools.Config.get(): add missing type annotations 2023-06-05 14:07:19 +02:00
translations [translations] update from Weblate 2023-10-20 10:44:11 +02:00
__init__.py add warning about enabling public_instance setting 2023-09-25 22:31:14 +02:00
autocomplete.py [doc] add documentation of Mwmbl engine & autocompleter 2023-08-27 17:25:26 +02:00
babel_extract.py [mod] move category and names of constants to searx/searxng.msg 2022-03-16 09:55:53 +01:00
compat.py [fix] pyright repported errors 2022-07-30 18:04:44 +02:00
exceptions.py [fix] spelling 2023-09-18 16:20:27 +02:00
external_bang.py [mod] external bang: go to main instead of search page when query is empty 2023-04-25 15:02:34 +02:00
external_urls.py [fix] typos / reported by @kianmeng in searx PR-3366 2022-09-27 18:32:14 +02:00
flaskfix.py [format.python] initial formatting of the python code 2021-12-27 09:26:22 +01:00
locales.py [fix] spelling 2023-09-18 16:20:27 +02:00
preferences.py [mod] add hotkeys option to settings.yml 2023-10-09 18:13:00 +02:00
query.py [feat] implement feeling lucky feature 2023-09-19 09:40:57 +02:00
redisdb.py [mod] RangeTable - fast lookup of a integer (IP) in a range table 2023-10-20 14:55:30 +02:00
redislib.py [mod] RangeTable - fast lookup of a integer (IP) in a range table 2023-10-20 14:55:30 +02:00
results.py [mod] move some code from webapp module to webutils module (no functional change) 2023-06-19 19:49:44 +02:00
searxng.msg [mod] clarify the difference of the default category and subgrouping 2023-04-07 11:03:25 +02:00
settings_defaults.py [mod] add hotkeys option to settings.yml 2023-10-09 18:13:00 +02:00
settings_loader.py [fix] spelling 2023-09-18 16:20:27 +02:00
settings.yml [mod] yacy: use official instance by default and fix crashes 2023-10-09 20:50:24 +02:00
sxng_locales.py Update searx.data - update_engine_traits.py 2023-09-27 09:12:38 +02:00
unixthreadname.py [format.python] initial formatting of the python code 2021-12-27 09:26:22 +01:00
utils.py [fix] spelling 2023-09-18 16:20:27 +02:00
version.py [fix] typos in documentation & messages 2023-08-13 08:50:29 +02:00
webadapter.py [feat] implement feeling lucky feature 2023-09-19 09:40:57 +02:00
webapp.py add new parameter called server.public_instance 2023-09-25 22:31:14 +02:00
webutils.py [fix] implement a JSONEncoder for the json format 2023-06-19 19:49:44 +02:00