Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
I searched the internet for a "configurable meta search engine", and I found THIS! Amazing, that was exactly what I was looking for. I really like your project and at the moment I am getting familiar with Searx. However, I have to say, for my taste the documentation (for users) is very poor. There are a lot of questions popping up my mind, for which I can't find an answer here or elsewhere.
One of the most important questions is: How does the website ranking work in Searx? We know that different search engines use different metrics and therefore the order of the websites differ (and also, which websites are shown at all and which are not). At least, that is the reason why you would use a meta search engine. To collect the result from multiple sources.
Also (this maybe could be a separate feature request, if it does not exist yet), is there an easy way to filter for special search engines right in the window with the search results? (Without going to preferences, toggling switches, and repeating the search? This seems very laborious...)
So far: I wish you success for the next year, and I am looking forward to start testing and tweaking Searx a bit more.
The ranking is set per engine ..
The operator of a searx instance can set the weight of each engine (e.g. https://github.com/asciimoo/searx/blob/master/searx/settings.yml#L161 ) / a normal user won't change (nor see) what the weight is.
no .. your PR is welcome :)
Yes our documentation misses many information. In the past it was a bit confusing how to add documentation therefore we reorganized the documentation process. And I released the new doc build at this second:
If you think your issue isn't solved, fell free to reopen.
@return42 Many thanks for your answer! The updated documentation looks way better than half an hour ago ;) Really nice (however not quite finished yet, as it looks like :P )
Thanks also for the link to the settings file. This is a first good hint. However, it does not clarify my question completely. (By the way: I didn't find the weight option in the new documentation as well. Would be cool, if that could be added and explained, how it works).
Let me give you an example. I enable the search engines wikidata (wd) (weight 2) and duckduckgo (ddg) (no weight, so per default =1 I guess), and search for a keyword.
So, I know that I have to multiply the results from wd by 2, because of the weight. But what initial weight do the results A, B, C,... have? In the new docu, it says that the returned results (https://asciimoo.github.io/searx/dev/engine_overview.html#returned-results) are: url, title, content and publishedDate. No initial weight however. So how does Searx display the query? Is it like:
I am assuming here, that both engines return completely different results. A follow up question would be: What happens, if A == a for example. Would the weights simply be added?
@maximilianpreisinger the scoring algo is quite simple. This is the actual code to determine a score of a result:
def result_score(result): weight = 1.0 for result_engine in result['engines']: if hasattr(engines[result_engine], 'weight'): weight *= float(engines[result_engine].weight) occurences = len(result['positions']) return sum((occurences * weight) / position for position in result['positions'])
The score is determined by
Thank you for this answer! The sorting is very clear and transparent now for me (and I also know, how to tweak it, if I am not satisfied with the order of the results, via the config file).