Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix other minor problems with the fts5 snippet() function. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | fts5-snippet-bias |
Files: | files | file ages | folders |
SHA1: |
b56b2a85cf377686727f3929208ede43 |
User & Date: | dan 2016-08-20 17:23:45.034 |
Context
2016-08-24
| ||
18:50 | Fix a bug in the fts5 snippet function causing it to return text containing zero phrase instances. (Closed-Leaf check-in: b174ed2bde user: dan tags: fts5-snippet-bias) | |
2016-08-20
| ||
17:23 | Fix other minor problems with the fts5 snippet() function. (check-in: b56b2a85cf user: dan tags: fts5-snippet-bias) | |
2016-08-19
| ||
18:37 | Register any built-in fts5 module before loading automatic extensions. This allows automatic extensions to register fts5 tokenizers and auxiliary functions. (check-in: b10e31dce8 user: dan tags: fts5-snippet-bias) | |
Changes
Changes to ext/fts5/fts5_aux.c.
︙ | ︙ | |||
437 438 439 440 441 442 443 | if( rc==SQLITE_OK && nScore>nBestScore ){ nBestScore = nScore; iBestCol = i; iBestStart = iAdj; nColSize = nDocsize; } | | | 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 | if( rc==SQLITE_OK && nScore>nBestScore ){ nBestScore = nScore; iBestCol = i; iBestStart = iAdj; nColSize = nDocsize; } if( rc==SQLITE_OK && sFinder.nFirst && nDocsize>nToken ){ for(jj=0; jj<(sFinder.nFirst-1); jj++){ if( sFinder.aFirst[jj+1]>io ) break; } if( sFinder.aFirst[jj]<io ){ int nScore; memset(aSeen, 0, nPhrase); |
︙ | ︙ | |||
465 466 467 468 469 470 471 472 473 474 475 476 477 478 | } } } if( rc==SQLITE_OK ){ rc = pApi->xColumnText(pFts, iBestCol, &ctx.zIn, &ctx.nIn); } if( ctx.zIn ){ if( rc==SQLITE_OK ){ rc = fts5CInstIterInit(pApi, pFts, iBestCol, &ctx.iter); } ctx.iRangeStart = iBestStart; ctx.iRangeEnd = iBestStart + nToken - 1; | > > > | 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 | } } } if( rc==SQLITE_OK ){ rc = pApi->xColumnText(pFts, iBestCol, &ctx.zIn, &ctx.nIn); } if( rc==SQLITE_OK && nColSize==0 ){ rc = pApi->xColumnSize(pFts, iBestCol, &nColSize); } if( ctx.zIn ){ if( rc==SQLITE_OK ){ rc = fts5CInstIterInit(pApi, pFts, iBestCol, &ctx.iter); } ctx.iRangeStart = iBestStart; ctx.iRangeEnd = iBestStart + nToken - 1; |
︙ | ︙ |
Changes to ext/fts5/test/fts5af.test.
︙ | ︙ | |||
151 152 153 154 155 156 157 158 159 160 161 162 | 3.6 {o o o o o o o o o X Y o o} {...o o o [X Y] o o} 3.7 {o o o o o o o o o o X Y o} {...o o o o [X Y] o} 3.8 {o o o o o o o o o o o X Y} {...o o o o o [X Y]} } { do_snippet_test 2.$tn $doc "X + Y" $res } } } ;# foreach_detail_mode finish_test | > > > > > > > > | 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 | 3.6 {o o o o o o o o o X Y o o} {...o o o [X Y] o o} 3.7 {o o o o o o o o o o X Y o} {...o o o o [X Y] o} 3.8 {o o o o o o o o o o o X Y} {...o o o o o [X Y]} } { do_snippet_test 2.$tn $doc "X + Y" $res } } do_execsql_test 4.0 { CREATE VIRTUAL TABLE x1 USING fts5(a, b); INSERT INTO x1 VALUES('xyz', '1 2 3 4 5 6 7 8 9 10 11 12 13'); SELECT snippet(x1, 1, '[', ']', '...', 5) FROM x1('xyz'); } { {1 2 3 4 5...} } } ;# foreach_detail_mode finish_test |