Open Bugs | New Bug anonymous
Login/Register

Equi4 SoftwareEdit Bug

Title: keyword search confusion Status: open
Product: Wikit Severity: -
Version: Type: bug
Assign to: jcw
Platform:
all
Message:

File:
Description:

Messages

2003/02/07 jcw
keyword search is not predictable enough, need clear algorithm
- some searches fail to produce anything unexpectedly
- no way to get all pages starting with blah, is there is one named exactly
"blah"
2003/03/10 lvirden
I think that one particular problem recently demonstrates the confusion
- the user was wanting to find all pages with "vfs" in them. They were
surprised when the page titled tclvfs wasn't found. Turns out matches
are all prefix stemmed (strings within a word, or at the end of a word,
won't match). This is great for some cases - try searching for the page
on C otherwise!!
Perhaps there just needs to be a special syntax to turn off prefixing...
2003/04/07 lvirden
another recent event appears to be similar:
3d bevel returns no matches while bevel 3d returns matches.
2003/09/26 techentin
I've had this itch too. Looking at the SearchList proc in utlis.tcl,
it looks pretty straightforward to construct an mk::select command that
uses multiple -globnc switches. Seems to work well for matching
multiple keywords and partial words.
Metakit is still doing all the hard search work, but page content
searching in a local copy of the tcler's wiki get slower. Not sure if
the performance hit is acceptable, or if a better approach would be a
complete search page with exact keyword and case toggles.
This might be better with a beautiful regexp to split the searchKey,
but I don't have one off the top of my head.
proc SearchList {} {
variable searchKey
variable searchLong
if {$searchKey == ""} {return ""}
set fields name
if {$searchLong} {
lappend fields page
}
# split search key into separate words
set searchKeyList [lsort -unique [split $searchKey " \t"]]
if { [lindex $searchKeyList 0] == "" } {
set searchKeyList [lreplace $searchKeyList 0 0]
}
# build metakit select command with multiple keywords
set searchCmd [list mk::select wdb.pages -rsort date]
foreach word $searchKeyList {
lappend searchCmd -globnc $fields *$word*
}
return [eval $searchCmd]
}

Bug Tracker © 2002 McMillan Enterprises, Inc.