From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id 8I/XILf3rWMHcQAAbAwnHQ (envelope-from ) for ; Thu, 29 Dec 2022 21:25:27 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id GBSzILf3rWMl6AAAauVa8A (envelope-from ) for ; Thu, 29 Dec 2022 21:25:27 +0100 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 64F553F0B9 for ; Thu, 29 Dec 2022 21:25:27 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pAzSf-00075i-AM; Thu, 29 Dec 2022 15:25:09 -0500 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 1pAzSY-00072m-ON for guix-patches@gnu.org; Thu, 29 Dec 2022 15:25:03 -0500 Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pAzSY-0005Xk-FS for guix-patches@gnu.org; Thu, 29 Dec 2022 15:25:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pAzSY-0007Re-BF for guix-patches@gnu.org; Thu, 29 Dec 2022 15:25:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#60410] [PATCH 2/7] xapian: Declare some prefixes as boolean. Resent-From: Arun Isaac Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 29 Dec 2022 20:25:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 60410 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 60410@debbugs.gnu.org, Ricardo Wurmus Cc: Arun Isaac Received: via spool by 60410-submit@debbugs.gnu.org id=B60410.167234545528505 (code B ref 60410); Thu, 29 Dec 2022 20:25:02 +0000 Received: (at 60410) by debbugs.gnu.org; 29 Dec 2022 20:24:15 +0000 Received: from localhost ([127.0.0.1]:32996 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pAzRn-0007Pg-Fg for submit@debbugs.gnu.org; Thu, 29 Dec 2022 15:24:15 -0500 Received: from mugam.systemreboot.net ([139.59.75.54]:60018) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pAzRh-0007Oz-Mm for 60410@debbugs.gnu.org; Thu, 29 Dec 2022 15:24:10 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=systemreboot.net; s=default; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=vw43Ev6NNC1FNSe67JTbpPLmDxSes1fNIbwm3ZE5HWk=; b=mUH0RGQ3mKQiogLGEQwQwsfZkm i7q3aZc1LS0Fdr0VQlRnIt8VqZZI0t+t1ik2yBJGUMIrrtXq0Co9rzawW+nZN2B/S4UEe4e2Pgckp wL2WDv2Wk93atz79hns9eCG7DYEE4o2fHWifkcmDNYHoFtuhlbmiHWcTnt8MzlhNakF96kYTJGKrT J3ePeT+9CCdTa91WYGUuzEAOYEHcwC5dyydtj6hVknT3qZE1h5DfG7C2rSOIBBeS19QW32Ysm52QN nc7pZ/vH68oBBrHw5tXGqoF3uS+VMpFTamZ6sVtWaKVjELs8ZeUGD9zxhgrL+dsl1aJJCy6RosGI7 ICwByMaw==; Received: from [192.168.2.1] (port=38338 helo=localhost.localdomain) by systemreboot.net with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1pAzRe-000oIe-2r; Fri, 30 Dec 2022 01:54:07 +0530 From: Arun Isaac Date: Thu, 29 Dec 2022 20:23:55 +0000 Message-Id: <20221229202400.28565-2-arunisaac@systemreboot.net> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221229201809.27997-1-arunisaac@systemreboot.net> References: <20221229201809.27997-1-arunisaac@systemreboot.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: guix-patches-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1672345527; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=vw43Ev6NNC1FNSe67JTbpPLmDxSes1fNIbwm3ZE5HWk=; b=XpCrfQUnZVGYU5f2EISwrj7XdxQSA2gPxQaGqtou4DaKPrjiZpXlFbAjarH4YTRFDfdjdC IN0CFyY+hI4cHFrTjB6minYvV4qFscDSca5WiosNJI70MFaIIRSbByhyaLF1xCnZNYpYud JoAGO4WJi1OYSP0bWeN44hqaTjN6oEmpupKfMWZ/t7639s6vgNRGb1yxbXPGd/OTsz/gA6 +rbhegs20j5ZWEvC0+UkgS7yfN+QiB13BZz13baes0Fc1cVPCEhtb/QuvmULq7kiN1PJW5 87hzyXPh9T/wPF1nRIq6iFqIBFy+LAp3S4NXFXifWlQKQbYU5C0RC+91I9FpKQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=systemreboot.net header.s=default header.b=mUH0RGQ3; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org"; dmarc=fail reason="SPF not aligned (relaxed)" header.from=systemreboot.net (policy=none) ARC-Seal: i=1; s=key1; d=yhetil.org; t=1672345527; a=rsa-sha256; cv=none; b=tVP40rH5SYrgU8eY+vlqA7GZBOmxSkvrwCnmcMWecB29CU5WfVUv4HlcY5TOth6PAxsV/p 4wI4ceF+Ig5Z9eMhedWA82OuCMqKLKcFuwMmf/5/bx+6CN9s+LPggu2gPZpIPsYLUdCiu8 tE8A3XrDT6w+hmVc/6zlABQThNuIamydjzF9iiLVDS8wv+tOgtwRp/lmBr9ErRsFmLQ1VK CN3qqAgDvISo0yDeQWNmxjdKyJdyUuR1dWV0I/e0N4CMCiVxKD+TNK/p9YS9JuOIIaopTF kncFx5lh3fLStlUUlSFHO9VymqQXbMnP3HMo9B3THnaixv1bZk0/7qUJiS6Lsg== X-Spam: Yes X-Migadu-Queue-Id: 64F553F0B9 X-Migadu-Spam: Yes X-Spam-Score: 8.97 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=systemreboot.net header.s=default header.b=mUH0RGQ3; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org"; dmarc=fail reason="SPF not aligned (relaxed)" header.from=systemreboot.net (policy=none) X-Migadu-Scanner: scn1.migadu.com X-Migadu-Spam-Score: 8.97 X-TUID: wQvTOCsWbeYw Some prefixes will only ever be used to filter the rest of the query and not for matching approximately using relevance weighting schemes. Such prefixes should be indexed as boolean prefixes. * mumi/xapian.scm (parse-query*): Support boolean prefixes. (search): Declare author, msgid, owner, severity, status, submitter and tag as boolean prefixes. --- mumi/xapian.scm | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/mumi/xapian.scm b/mumi/xapian.scm index 06a54cd..7bf84d3 100644 --- a/mumi/xapian.scm +++ b/mumi/xapian.scm @@ -249,7 +249,7 @@ messages and index their contents in the Xapian database at DBPATH." (invalid (pk invalid ""))) token)) -(define* (parse-query* querystring #:key stemmer stemming-strategy (prefixes '())) +(define* (parse-query* querystring #:key stemmer stemming-strategy (prefixes '()) (boolean-prefixes '())) (let ((queryparser (new-QueryParser)) (date-range-processor (new-DateRangeProcessor 0 "date:" 0)) (mdate-range-processor (new-DateRangeProcessor 1 "mdate:" 0))) @@ -261,6 +261,10 @@ messages and index their contents in the Xapian database at DBPATH." ((field . prefix) (QueryParser-add-prefix queryparser field prefix))) prefixes) + (for-each (match-lambda + ((field . prefix) + (QueryParser-add-boolean-prefix queryparser field prefix))) + boolean-prefixes) (QueryParser-add-rangeprocessor queryparser date-range-processor) (QueryParser-add-rangeprocessor queryparser mdate-range-processor) (let ((query (QueryParser-parse-query queryparser querystring @@ -324,14 +328,14 @@ intact." ;; prefixes for field search. (query (parse-query* querystring* #:stemmer (make-stem "en") - #:prefixes '(("submitter" . "A") - ("author" . "XA") - ("subject" . "S") - ("owner" . "XO") - ("severity" . "XS") - ("tag" . "XT") - ("status" . "XSTATUS") - ("msgid" . "XU")))) + #:prefixes '(("subject" . "S")) + #:boolean-prefixes '(("author" . "XA") + ("msgid" . "XU") + ("owner" . "XO") + ("severity" . "XS") + ("status" . "XSTATUS") + ("submitter" . "A") + ("tag" . "XT")))) (enq (enquire db query))) ;; Collapse on mergedwith value (Enquire-set-collapse-key enq 2 1) -- 2.38.1