Skip to content

Commit a39ddd1

Browse files
authored
Merge 8a18ea3 into 4e69e86
2 parents 4e69e86 + 8a18ea3 commit a39ddd1

File tree

6 files changed

+48
-13
lines changed

6 files changed

+48
-13
lines changed

src/queryfilter.cpp

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -85,15 +85,14 @@ void ISphQueryFilter::GetKeywords ( CSphVector<CSphKeywordInfo> & dKeywords, Exp
8585
}
8686
}
8787

88-
if ( !bExpanded || !tWordlist.m_dExpanded.GetLength() )
89-
{
90-
CSphKeywordInfo& tInfo = dKeywords.Add();
91-
tInfo.m_sTokenized = (const char*)sWord;
92-
tInfo.m_sNormalized = (const char*)sWord;
93-
tInfo.m_iDocs = iDocs;
94-
tInfo.m_iHits = iHits;
95-
tInfo.m_iQpos = iQpos;
96-
}
88+
// lets keep original term to get the same result from empty disk chunks of the RT index or chunks wo matches
89+
CSphKeywordInfo& tInfo = dKeywords.Add();
90+
tInfo.m_sTokenized = (const char*)sWord;
91+
tInfo.m_sNormalized = (const char*)sWord;
92+
tInfo.m_iDocs = iDocs;
93+
tInfo.m_iHits = iHits;
94+
tInfo.m_iQpos = iQpos;
95+
9796
} else
9897
{
9998
AddKeywordStats ( sWord, sTokenized, iQpos, dKeywords );
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
––– block: ../base/start-searchd –––
2+
––– input –––
3+
mysql -P9306 -h0 -e "drop table if exists t; create table t(name text) min_infix_len='2' diskchunk_flush_write_timeout = '9999';"
4+
––– output –––
5+
––– input –––
6+
mysql -P9306 -h0 -e "insert into t values(1, 'LIMITED LIABILIYT COMPANY TVK'); insert into t values(2, 'LIPITED LIABILITY COMPANY ABCDEF'); insert into t values(3, 'LIXITED LIABILITY COMPANY XXXXXX');"
7+
––– output –––
8+
––– input –––
9+
mysql -P9306 -h0 -e "call keywords('LI\\?ITED LIQBILITY CO\\?PQNY TVK', 't')"
10+
––– output –––
11+
+------+-----------+------------+
12+
| qpos | tokenized | normalized |
13+
+------+-----------+------------+
14+
| 1 | li?ited | limited |
15+
| 1 | li?ited | lixited |
16+
| 1 | li?ited | lipited |
17+
| 2 | liqbility | liqbility |
18+
| 3 | co?pqny | co?pqny |
19+
| 4 | tvk | tvk |
20+
+------+-----------+------------+
21+
––– input –––
22+
mysql -P9306 -h0 -e "flush ramchunk t"
23+
––– output –––
24+
––– input –––
25+
mysql -P9306 -h0 -e "call keywords('LI\\?ITED LIQBILITY CO\\?PQNY TVK', 't')"
26+
––– output –––
27+
+------+-----------+------------+
28+
| qpos | tokenized | normalized |
29+
+------+-----------+------------+
30+
| 1 | li?ited | limited |
31+
| 1 | li?ited | lixited |
32+
| 1 | li?ited | lipited |
33+
| 2 | liqbility | liqbility |
34+
| 3 | co?pqny | co?pqny |
35+
| 4 | tvk | tvk |
36+
+------+-----------+------------+

test/test_254/model.bin

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

test/test_324/model.bin

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
a:1:{i:0;a:12:{i:0;a:3:{s:8:"sphinxql";s:71:"CALL KEYWORDS ( '*qu* test', 'dist1', 1 AS stats, 0 AS fold_wildcards )";s:10:"total_rows";i:4;s:4:"rows";a:4:{i:0;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:5:"quest";s:4:"docs";s:1:"4";s:4:"hits";s:1:"4";}i:1;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:9:"sidequest";s:4:"docs";s:1:"3";s:4:"hits";s:1:"3";}i:2;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:7:"questik";s:4:"docs";s:1:"1";s:4:"hits";s:1:"1";}i:3;a:5:{s:4:"qpos";s:1:"2";s:9:"tokenized";s:4:"test";s:10:"normalized";s:4:"test";s:4:"docs";s:1:"3";s:4:"hits";s:1:"3";}}}i:1;a:3:{s:8:"sphinxql";s:71:"CALL KEYWORDS ( '*qu* test', 'dist2', 1 AS stats, 0 AS fold_wildcards )";s:10:"total_rows";i:4;s:4:"rows";a:4:{i:0;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:5:"quest";s:4:"docs";s:1:"4";s:4:"hits";s:1:"4";}i:1;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:9:"sidequest";s:4:"docs";s:1:"3";s:4:"hits";s:1:"3";}i:2;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:7:"questik";s:4:"docs";s:1:"1";s:4:"hits";s:1:"1";}i:3;a:5:{s:4:"qpos";s:1:"2";s:9:"tokenized";s:4:"test";s:10:"normalized";s:4:"test";s:4:"docs";s:1:"3";s:4:"hits";s:1:"3";}}}i:2;a:3:{s:8:"sphinxql";s:71:"CALL KEYWORDS ( '*qu* test', 'dist3', 1 AS stats, 0 AS fold_wildcards )";s:10:"total_rows";i:4;s:4:"rows";a:4:{i:0;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:5:"quest";s:4:"docs";s:1:"4";s:4:"hits";s:1:"4";}i:1;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:9:"sidequest";s:4:"docs";s:1:"3";s:4:"hits";s:1:"3";}i:2;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:7:"questik";s:4:"docs";s:1:"1";s:4:"hits";s:1:"1";}i:3;a:5:{s:4:"qpos";s:1:"2";s:9:"tokenized";s:4:"test";s:10:"normalized";s:4:"test";s:4:"docs";s:1:"3";s:4:"hits";s:1:"3";}}}i:3;a:3:{s:8:"sphinxql";s:70:"CALL KEYWORDS ( '*qu* te*', 'dist1', 1 AS stats, 1 AS fold_wildcards )";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:4:"*qu*";s:4:"docs";s:1:"8";s:4:"hits";s:1:"8";}i:1;a:5:{s:4:"qpos";s:1:"2";s:9:"tokenized";s:3:"te*";s:10:"normalized";s:3:"te*";s:4:"docs";s:1:"7";s:4:"hits";s:1:"7";}}}i:4;a:3:{s:8:"sphinxql";s:70:"CALL KEYWORDS ( '*qu* te*', 'dist2', 1 AS stats, 1 AS fold_wildcards )";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:4:"*qu*";s:4:"docs";s:1:"8";s:4:"hits";s:1:"8";}i:1;a:5:{s:4:"qpos";s:1:"2";s:9:"tokenized";s:3:"te*";s:10:"normalized";s:3:"te*";s:4:"docs";s:1:"7";s:4:"hits";s:1:"7";}}}i:5;a:3:{s:8:"sphinxql";s:70:"CALL KEYWORDS ( '*qu* te*', 'dist3', 1 AS stats, 1 AS fold_wildcards )";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:4:"*qu*";s:4:"docs";s:1:"8";s:4:"hits";s:1:"8";}i:1;a:5:{s:4:"qpos";s:1:"2";s:9:"tokenized";s:3:"te*";s:10:"normalized";s:3:"te*";s:4:"docs";s:1:"7";s:4:"hits";s:1:"7";}}}i:6;a:2:{s:8:"sphinxql";s:58:"insert into rt_a1 values ( 1,'abc', 11 ), ( 2,'abc', 11 )";s:14:"total_affected";i:2;}i:7;a:2:{s:8:"sphinxql";s:75:"insert into rt_a2 values ( 1,'abc', 11 ), ( 2,'abc', 11 ), ( 3,'abc', 11 )";s:14:"total_affected";i:3;}i:8;a:2:{s:8:"sphinxql";s:20:"flush ramchunk rt_a1";s:14:"total_affected";i:0;}i:9;a:2:{s:8:"sphinxql";s:20:"flush ramchunk rt_a2";s:14:"total_affected";i:0;}i:10;a:3:{s:8:"sphinxql";s:48:"call keywords ( 'abc abc', 'rt_a1', 1 as stats )";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:3:"abc";s:10:"normalized";s:3:"abc";s:4:"docs";s:1:"2";s:4:"hits";s:1:"2";}i:1;a:5:{s:4:"qpos";s:1:"2";s:9:"tokenized";s:3:"abc";s:10:"normalized";s:3:"abc";s:4:"docs";s:1:"2";s:4:"hits";s:1:"2";}}}i:11;a:3:{s:8:"sphinxql";s:48:"call keywords ( 'abc abc', 'dist4', 1 as stats )";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:3:"abc";s:10:"normalized";s:3:"abc";s:4:"docs";s:1:"5";s:4:"hits";s:1:"5";}i:1;a:5:{s:4:"qpos";s:1:"2";s:9:"tokenized";s:3:"abc";s:10:"normalized";s:3:"abc";s:4:"docs";s:1:"5";s:4:"hits";s:1:"5";}}}}}
1+
a:1:{i:0;a:12:{i:0;a:3:{s:8:"sphinxql";s:71:"CALL KEYWORDS ( '*qu* test', 'dist1', 1 AS stats, 0 AS fold_wildcards )";s:10:"total_rows";i:5;s:4:"rows";a:5:{i:0;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:5:"quest";s:4:"docs";s:1:"4";s:4:"hits";s:1:"4";}i:1;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:9:"sidequest";s:4:"docs";s:1:"3";s:4:"hits";s:1:"3";}i:2;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:7:"questik";s:4:"docs";s:1:"1";s:4:"hits";s:1:"1";}i:3;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:4:"*qu*";s:4:"docs";s:1:"0";s:4:"hits";s:1:"0";}i:4;a:5:{s:4:"qpos";s:1:"2";s:9:"tokenized";s:4:"test";s:10:"normalized";s:4:"test";s:4:"docs";s:1:"3";s:4:"hits";s:1:"3";}}}i:1;a:3:{s:8:"sphinxql";s:71:"CALL KEYWORDS ( '*qu* test', 'dist2', 1 AS stats, 0 AS fold_wildcards )";s:10:"total_rows";i:5;s:4:"rows";a:5:{i:0;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:5:"quest";s:4:"docs";s:1:"4";s:4:"hits";s:1:"4";}i:1;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:9:"sidequest";s:4:"docs";s:1:"3";s:4:"hits";s:1:"3";}i:2;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:7:"questik";s:4:"docs";s:1:"1";s:4:"hits";s:1:"1";}i:3;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:4:"*qu*";s:4:"docs";s:1:"0";s:4:"hits";s:1:"0";}i:4;a:5:{s:4:"qpos";s:1:"2";s:9:"tokenized";s:4:"test";s:10:"normalized";s:4:"test";s:4:"docs";s:1:"3";s:4:"hits";s:1:"3";}}}i:2;a:3:{s:8:"sphinxql";s:71:"CALL KEYWORDS ( '*qu* test', 'dist3', 1 AS stats, 0 AS fold_wildcards )";s:10:"total_rows";i:5;s:4:"rows";a:5:{i:0;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:5:"quest";s:4:"docs";s:1:"4";s:4:"hits";s:1:"4";}i:1;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:9:"sidequest";s:4:"docs";s:1:"3";s:4:"hits";s:1:"3";}i:2;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:7:"questik";s:4:"docs";s:1:"1";s:4:"hits";s:1:"1";}i:3;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:4:"*qu*";s:4:"docs";s:1:"0";s:4:"hits";s:1:"0";}i:4;a:5:{s:4:"qpos";s:1:"2";s:9:"tokenized";s:4:"test";s:10:"normalized";s:4:"test";s:4:"docs";s:1:"3";s:4:"hits";s:1:"3";}}}i:3;a:3:{s:8:"sphinxql";s:70:"CALL KEYWORDS ( '*qu* te*', 'dist1', 1 AS stats, 1 AS fold_wildcards )";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:4:"*qu*";s:4:"docs";s:1:"8";s:4:"hits";s:1:"8";}i:1;a:5:{s:4:"qpos";s:1:"2";s:9:"tokenized";s:3:"te*";s:10:"normalized";s:3:"te*";s:4:"docs";s:1:"7";s:4:"hits";s:1:"7";}}}i:4;a:3:{s:8:"sphinxql";s:70:"CALL KEYWORDS ( '*qu* te*', 'dist2', 1 AS stats, 1 AS fold_wildcards )";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:4:"*qu*";s:4:"docs";s:1:"8";s:4:"hits";s:1:"8";}i:1;a:5:{s:4:"qpos";s:1:"2";s:9:"tokenized";s:3:"te*";s:10:"normalized";s:3:"te*";s:4:"docs";s:1:"7";s:4:"hits";s:1:"7";}}}i:5;a:3:{s:8:"sphinxql";s:70:"CALL KEYWORDS ( '*qu* te*', 'dist3', 1 AS stats, 1 AS fold_wildcards )";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:4:"*qu*";s:10:"normalized";s:4:"*qu*";s:4:"docs";s:1:"8";s:4:"hits";s:1:"8";}i:1;a:5:{s:4:"qpos";s:1:"2";s:9:"tokenized";s:3:"te*";s:10:"normalized";s:3:"te*";s:4:"docs";s:1:"7";s:4:"hits";s:1:"7";}}}i:6;a:2:{s:8:"sphinxql";s:58:"insert into rt_a1 values ( 1,'abc', 11 ), ( 2,'abc', 11 )";s:14:"total_affected";i:2;}i:7;a:2:{s:8:"sphinxql";s:75:"insert into rt_a2 values ( 1,'abc', 11 ), ( 2,'abc', 11 ), ( 3,'abc', 11 )";s:14:"total_affected";i:3;}i:8;a:2:{s:8:"sphinxql";s:20:"flush ramchunk rt_a1";s:14:"total_affected";i:0;}i:9;a:2:{s:8:"sphinxql";s:20:"flush ramchunk rt_a2";s:14:"total_affected";i:0;}i:10;a:3:{s:8:"sphinxql";s:48:"call keywords ( 'abc abc', 'rt_a1', 1 as stats )";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:3:"abc";s:10:"normalized";s:3:"abc";s:4:"docs";s:1:"2";s:4:"hits";s:1:"2";}i:1;a:5:{s:4:"qpos";s:1:"2";s:9:"tokenized";s:3:"abc";s:10:"normalized";s:3:"abc";s:4:"docs";s:1:"2";s:4:"hits";s:1:"2";}}}i:11;a:3:{s:8:"sphinxql";s:48:"call keywords ( 'abc abc', 'dist4', 1 as stats )";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:5:{s:4:"qpos";s:1:"1";s:9:"tokenized";s:3:"abc";s:10:"normalized";s:3:"abc";s:4:"docs";s:1:"5";s:4:"hits";s:1:"5";}i:1;a:5:{s:4:"qpos";s:1:"2";s:9:"tokenized";s:3:"abc";s:10:"normalized";s:3:"abc";s:4:"docs";s:1:"5";s:4:"hits";s:1:"5";}}}}}

0 commit comments

Comments
 (0)