Roundup Tracker - Issues

Issue 1155657

classification
Title: Full text "AND" search has message scope, not issue scope
Type: rfe Severity: normal
Components: Database Versions: 1.4
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: richard Nosy List: ajaksu2, cknittel, richard
Priority: normal Keywords: patch

Created on 2005-03-03 08:27 by cknittel, last changed 2009-03-18 00:27 by ajaksu2.

Files
File name Uploaded Description Edit Remove
issue_scope_search.diff ajaksu2, 2009-03-18 00:27 POC implementation
Messages
msg3368 Author: [hidden] (cknittel) Date: 2005-03-03 08:27
Example:

- Create issue 1 with message "string1 string2 string3".
- Create issue 2 with two messages, "string1" and
"string3".

Search for "string1 string3". Only issue 1 will be part
of the search result.
msg3369 Author: [hidden] (richard) Date: 2005-03-07 23:36
Logged In: YES 
user_id=6405

Re-filing as a feature request, as it'll require many changes to the code. 
I don't consider the current behaviour to be buggy.
msg3370 Author: [hidden] (anonymous) Date: 2005-09-08 15:00
Logged In: NO 

Hello Richard,

Although it's not buggy behaviour, it would be grateful if
we could provide "AND" search feature on message scope as
Christoph suggested because the behaviour seems the same as
searching engine like Google. They require "OR" keyword if
you want to "OR" search, btw.

In addition, it would also be grateful if we could provide
"AND" search feature on topics/keywords scope. For exmple,
if you put "Performance", "Usability",... as category topics
and "ProjectA", "ProjectB",... as project name topics, you
would like to find "ProjectA AND Usability".

I understand Roundup code is written fully extensible and it
does not care message or topics but just care about scheme,
Multilink or not for insntace. So, it's not good idea to
give special treatment to message and topics but even so, I
still think "AND search for message and topics" would be
very useful for Roundup users.

I hope my comments is understandable.
msg3615 Author: [hidden] (ajaksu2) Date: 2009-03-01 20:45
Hm, I get this working with postgresql by hacking indexer_rdbms.py so
that it first finds issues containing each of the words, then intersects
that.

Here's some example generated SQL for AND'ing at issue level, if it's
too stupid please enlighten me :) :

select nodeid from issue_messages where linkid in (
select CAST(_itemid as Integer) from __textids where _textid in (
select distinct(_textid) from __words where _word=E'NICE')) INTERSECT
 select nodeid from issue_messages where 
linkid in (
select CAST(_itemid as Integer) from __textids where _textid in (
select distinct(_textid) from __words where _word=E'TWO'));
msg3662 Author: [hidden] (ajaksu2) Date: 2009-03-18 00:27
Here's a patch that makes issue the search scope.

It gets IDs of [issues that have a message with word_1] and intersects
that with IDs of [issues that have a message with word_n].

Then it joins that with the old message-scope results.

If one word is in issue title and the other[s] in messages, it still
won't find'em...

IOW, an awfully ugly, stupid way of coding this RFE:  I can't do SQL,
didn't even try to get clean Python. But it works :)
History
Date User Action Args
2009-03-18 00:27:52ajaksu2setfiles: + issue_scope_search.diff
keywords: + patch
messages: + msg3662
versions: + 1.4
2009-03-01 20:45:14ajaksu2setmessages: + msg3615
2009-02-20 02:05:32ajaksu2setnosy: + ajaksu2
2005-03-03 08:27:59cknittelcreate