From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jean Louis Newsgroups: gmane.emacs.help Subject: Re: Which Elisp data structure is fastest for searching? Date: Thu, 26 Dec 2024 11:53:38 +0300 Message-ID: References: <86wmfnc66h.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="1983"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mutt/2.2.12 (2023-09-09) Cc: Help GNU Emacs To: Joel Reicher Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Thu Dec 26 09:54:24 2024 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1tQjdQ-0000SG-HZ for geh-help-gnu-emacs@m.gmane-mx.org; Thu, 26 Dec 2024 09:54:24 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tQjcs-00026P-HX; Thu, 26 Dec 2024 03:53:50 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tQjcq-00025v-Ag for help-gnu-emacs@gnu.org; Thu, 26 Dec 2024 03:53:48 -0500 Original-Received: from stw1.rcdrun.com ([217.170.207.13]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tQjco-0003SU-Qw for help-gnu-emacs@gnu.org; Thu, 26 Dec 2024 03:53:48 -0500 Original-Received: from localhost ([::ffff:41.75.190.33]) (AUTH: PLAIN admin, TLS: TLS1.3,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by stw1.rcdrun.com with ESMTPSA id 000000000007DC23.00000000676D1997.00120281; Thu, 26 Dec 2024 01:53:42 -0700 Mail-Followup-To: Joel Reicher , Help GNU Emacs Content-Disposition: inline In-Reply-To: <86wmfnc66h.fsf@gmail.com> Received-SPF: pass client-ip=217.170.207.13; envelope-from=bugs@gnu.support; helo=stw1.rcdrun.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.help:148989 Archived-At: * Joel Reicher [2024-12-26 09:25]: > > A hash table is a very fast kind of lookup table, somewhat like an alist > > (*note Association Lists::) in that it maps keys to corresponding > > values. > > > > The above is not so conclusive and I have not done measurements. > > > > It says "somewhat like an alist", but is the alist faster in searching > > through elements or the hash table? > > It depends on the kind of search you are doing. As an extreme example, > imagine your search was not based on the hash table key; you might have to > go through every entry in the table to find what you're looking for. > > This is why different data structures exist. There is no "best"; only "best > for..." As is written in manual that hash table is very fast, I believe yes, though my search may not be. I will use following approach: - there will be list or hash with values that are to be searched, those values will have their ID, that information will be prepared for easier searching, like special symbols removed, only words remaining, maybe even small words could be removed - there will be different hash with accurate information about the ID, such as title, URL, description That is approach I know. Then I can give relevant information for website search. I wonder if Emacs can remain in memory keeping to answer HTTP requests, so that I do not load it every time. -- Jean Louis