1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
|
<?xml version="1.0" encoding="utf-8"?>
<test>
<name>snippets vs wildcard matches</name>
<config>
indexer
{
mem_limit = 16M
}
searchd
{
<searchd_settings/>
}
source srctest
{
type = mysql
<sql_settings/>
sql_query = SELECT id, body FROM test_table
}
index test_idx
{
source = srctest
path = <data_path/>/test
min_word_len = 1
min_infix_len = 1
}
</config>
<db_create>
CREATE TABLE `test_table`
(
`id` int(11) NOT NULL default '0',
`body` varchar(255) NOT NULL default ''
)
</db_create>
<db_drop>
DROP TABLE IF EXISTS `test_table`
</db_drop>
<db_insert>
INSERT INTO `test_table` VALUES ( 1, 'test' )
</db_insert>
<custom_test>
$results = array ();
$opts = array
(
'before_match' => '[B]',
'after_match' => '[A]',
'chunk_separator' => ' ... ',
'limit' => 100,
'around' => 2,
);
$tests = array
(
array
(
'docs' => array('He caught fish in deep pools with invisible fingers and ate them raw.'),
'q' => array
(
'he* fin*',
'*gers *raw',
'fin* *gers',
'*augh* *is*',
'*pools*',
),
),
// utf-8
array
(
'docs' => array('Невидимыми пальцами ловил он рыбу в глубоких омутах и ел её сырой.'),
'q' => array
(
'невидимыми* пальц*',
'*цами *сырой',
'пальц* *цами',
'*ови* *ы*',
'*омутах*',
),
),
);
foreach ( $tests as $test )
{
foreach ( $test['q'] as $words )
{
$results [] = $words;
$res = $client->BuildExcerpts ( $test['docs'], 'test_idx', $words, $opts );
if ( !$res )
{
$results = false;
return;
}
$results [] = $res;
}
}
</custom_test>
<sphqueries>
<!-- regression wildcards matching beside only statted words -->
<sphinxql>CALL SNIPPETS ( 'test of testing case', 'test_idx', 't?st*', 1 AS query_mode, 0 as limit )</sphinxql>
<sphinxql>CALL SNIPPETS ( 'test of testing case', 'test_idx', 't?st*', 0 AS query_mode, 0 as limit )</sphinxql>
<sphinxql>CALL SNIPPETS ( 'some dummy words here test of testing case and long tail also here', 'test_idx', 't?st*', 1 AS query_mode, 30 as limit )</sphinxql>
<sphinxql>CALL SNIPPETS ( 'some dummy words here test of testing case and long tail also here', 'test_idx', 't?st*', 0 AS query_mode, 30 as limit )</sphinxql>
</sphqueries>
</test>
|