1 |
dpavlin |
190 |
How does exact match work? |
2 |
|
|
|
3 |
|
|
Well, it's quite stupid because swish-e doesn't allow you to make exact |
4 |
|
|
match to words. So, work-around is to add 'xxbxx' word at beginning of |
5 |
|
|
string and 'xxexx' word at end (think of it as xxb(egin)xx and xxe(nd)xxx) |
6 |
|
|
and then search for phrase (words in particular order). |
7 |
|
|
|
8 |
|
|
So, title "human" will be indexed as "xxbxx human xxexx" if you want full |
9 |
|
|
exact match. Then you can search it using (numbers are parameters to e[nr] |
10 |
|
|
field in html forms): |
11 |
|
|
|
12 |
|
|
1: exact match from beginning "xxbxx human" |
13 |
|
|
2: exact match from end "human xxexx" (not really useful) |
14 |
|
|
3: exact match begin and end "xxbxx human xxexx" |
15 |
|
|
|
16 |
|
|
add 4 to those values (numbers are really bit-masks :-) to produce wild-card |
17 |
|
|
match: |
18 |
|
|
|
19 |
|
|
5: exact from beginning with wild-card "xxbxx human*" |
20 |
|
|
6: exact from end with wild-card "human* xxexx" |
21 |
|
|
7: exact begin+end with wild-card "xxbxx human* xxexx" |
22 |
|
|
|
23 |
dpavlin |
203 |
So, to define field which have to be searched using exact match with wild-card |
24 |
dpavlin |
190 |
on TitleAndResponsibility, you would use: |
25 |
|
|
|
26 |
|
|
<input type="hidden" name="f1" value="TitleAndResponsiblity"> |
27 |
|
|
<input type="text" name="v1"> |
28 |
|
|
<input type="hidden" name="e1" value="5"> |
29 |
|
|
|
30 |
dpavlin |
299 |
|
31 |
|
|
What are bit-masks? |
32 |
|
|
|
33 |
|
|
Bit-mask is usage of one byte (8 bits) as 8 separate bits with it's own meaning. |
34 |
|
|
So, 1 = 2^1, thus it's bit 1. So, for 1-3 we have: |
35 |
|
|
|
36 |
|
|
number bits |
37 |
|
|
1 01 |
38 |
|
|
2 10 |
39 |
|
|
3 11 |
40 |
|
|
|
41 |
|
|
For that we are using two bits. If we want to produce wild-card match, we use |
42 |
|
|
bit 3 (2^3 = 4) so we have: |
43 |
|
|
|
44 |
|
|
number bits |
45 |
|
|
1 001 begin |
46 |
|
|
2 010 end |
47 |
|
|
3 011 begin+end |
48 |
|
|
4 100 (not used) |
49 |
|
|
5 101 (4+1) begin+wild-card |
50 |
|
|
6 110 (4+2) end+wild-card |
51 |
|
|
7 111 (4+3) begin+end+wild-card |