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 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
|
<?xml version="1.0" encoding="utf-8"?>
<test>
<name>extended queries</name>
<config>
indexer
{
mem_limit = 16M
}
searchd
{
<searchd_settings/>
}
source srctest
{
type = mysql
<sql_settings/>
sql_query = SELECT * FROM test_table where document_id < 1000
sql_query_pre = SET NAMES utf8
}
index test
{
source = srctest
path = <data_path/>/test
min_word_len = 2
ngram_chars = U+4E00..U+9FBF, U+3400..U+4DBF, U+20000..U+2A6DF, U+F900..U+FAFF,U+2F800..U+2FA1F, U+2E80..U+2EFF, U+2F00..U+2FDF, U+3100..U+312F, U+31A0..U+31BF,U+3040..U+309F, U+30A0..U+30FF, U+31F0..U+31FF, U+AC00..U+D7AF, U+1100..U+11FF,U+3130..U+318F, U+A000..U+A48F, U+A490..U+A4CF
ngram_len = 1
charset_table = U+FF10..U+FF19->0..9, 0..9, U+FF41..U+FF5A->a..z, U+FF21..U+FF3A->a..z,A..Z->a..z, a..z, U+0149, U+017F, U+0138, U+00DF, U+00FF, U+00C0..U+00D6->U+00E0..U+00F6,U+00E0..U+00F6, U+00D8..U+00DE->U+00F8..U+00FE, U+00F8..U+00FE, U+0100->U+0101, U+0101,U+0102->U+0103, U+0103, U+0104->U+0105, U+0105, U+0106->U+0107, U+0107, U+0108->U+0109,U+0109, U+010A->U+010B, U+010B, U+010C->U+010D, U+010D, U+010E->U+010F, U+010F,U+0110->U+0111, U+0111, U+0112->U+0113, U+0113, U+0114->U+0115, U+0115, U+0116->U+0117,U+0117, U+0118->U+0119, U+0119, U+011A->U+011B, U+011B, U+011C->U+011D, U+011D,U+011E->U+011F, U+011F, U+0130->U+0131, U+0131, U+0132->U+0133, U+0133, U+0134->U+0135,U+0135, U+0136->U+0137, U+0137, U+0139->U+013A, U+013A, U+013B->U+013C, U+013C,U+013D->U+013E, U+013E, U+013F->U+0140, U+0140, U+0141->U+0142, U+0142, U+0143->U+0144,U+0144, U+0145->U+0146, U+0146, U+0147->U+0148, U+0148, U+014A->U+014B, U+014B,U+014C->U+014D, U+014D, U+014E->U+014F, U+014F, U+0150->U+0151, U+0151, U+0152->U+0153,U+0153, U+0154->U+0155, U+0155, U+0156->U+0157, U+0157, U+0158->U+0159, U+0159,U+015A->U+015B, U+015B, U+015C->U+015D, U+015D, U+015E->U+015F, U+015F, U+0160->U+0161,U+0161, U+0162->U+0163, U+0163, U+0164->U+0165, U+0165, U+0166->U+0167, U+0167,U+0168->U+0169, U+0169, U+016A->U+016B, U+016B, U+016C->U+016D, U+016D, U+016E->U+016F,U+016F, U+0170->U+0171, U+0171, U+0172->U+0173, U+0173, U+0174->U+0175, U+0175,U+0176->U+0177, U+0177, U+0178->U+00FF, U+00FF, U+0179->U+017A, U+017A, U+017B->U+017C,U+017C, U+017D->U+017E, U+017E, U+0410..U+042F->U+0430..U+044F, U+0430..U+044F,U+05D0..U+05EA, U+0531..U+0556->U+0561..U+0586, U+0561..U+0587, U+0621..U+063A, U+01B9,U+01BF, U+0640..U+064A, U+0660..U+0669, U+066E, U+066F, U+0671..U+06D3, U+06F0..U+06FF,U+0904..U+0939, U+0958..U+095F, U+0960..U+0963, U+0966..U+096F, U+097B..U+097F,U+0985..U+09B9, U+09CE, U+09DC..U+09E3, U+09E6..U+09EF, U+0A05..U+0A39, U+0A59..U+0A5E,U+0A66..U+0A6F, U+0A85..U+0AB9, U+0AE0..U+0AE3, U+0AE6..U+0AEF, U+0B05..U+0B39,U+0B5C..U+0B61, U+0B66..U+0B6F, U+0B71, U+0B85..U+0BB9, U+0BE6..U+0BF2, U+0C05..U+0C39,U+0C66..U+0C6F, U+0C85..U+0CB9, U+0CDE..U+0CE3, U+0CE6..U+0CEF, U+0D05..U+0D39, U+0D60,U+0D61, U+0D66..U+0D6F, U+0D85..U+0DC6, U+1900..U+1938, U+1946..U+194F, U+A800..U+A805,U+A807..U+A822, U+0386->U+03B1, U+03AC->U+03B1, U+0388->U+03B5, U+03AD->U+03B5,U+0389->U+03B7, U+03AE->U+03B7, U+038A->U+03B9, U+0390->U+03B9, U+03AA->U+03B9,U+03AF->U+03B9, U+03CA->U+03B9, U+038C->U+03BF, U+03CC->U+03BF, U+038E->U+03C5,U+03AB->U+03C5, U+03B0->U+03C5, U+03CB->U+03C5, U+03CD->U+03C5, U+038F->U+03C9,U+03CE->U+03C9, U+03C2->U+03C3, U+0391..U+03A1->U+03B1..U+03C1,U+03A3..U+03A9->U+03C3..U+03C9, U+03B1..U+03C1, U+03C3..U+03C9, U+0E01..U+0E2E,U+0E30..U+0E3A, U+0E40..U+0E45, U+0E47, U+0E50..U+0E59, U+A000..U+A48F, U+4E00..U+9FBF,U+3400..U+4DBF, U+20000..U+2A6DF, U+F900..U+FAFF, U+2F800..U+2FA1F, U+2E80..U+2EFF,U+2F00..U+2FDF, U+3100..U+312F, U+31A0..U+31BF, U+3040..U+309F, U+30A0..U+30FF,U+31F0..U+31FF, U+AC00..U+D7AF, U+1100..U+11FF, U+3130..U+318F, U+A000..U+A48F,U+A490..U+A4CF
}
source src_fld
{
type = mysql
<sql_settings/>
sql_query = SELECT *, 11 as idd FROM test_table where document_id > 999
sql_query_pre = SET NAMES utf8
sql_attr_uint = idd
}
index fld
{
source = src_fld
path = <data_path/>/fld
docinfo = extern
}
</config>
<queries>
<query index="test" mode="extended2">basic query</query>
<query index="test" mode="extended2">"phrase query"</query>
<query index="test" mode="extended2">"phrase (query)/3 ~on steroids"</query>
<query index="test" mode="extended2">@title sample @body world</query>
<!-- <query mode="extended2">-query</query> -->
<query index="test" mode="extended2">"quorum query test"/1</query>
<query index="test" mode="extended2">"quorum query test"/4</query>
<query index="test" mode="extended2">"hello program"~3</query>
<query index="test" mode="extended2">"hello program"~4</query>
<query index="test" mode="extended2">吐</query>
<query index="test" mode="extended2">我</query>
<query index="test" mode="extended2">basic | china</query>
<query index="test" mode="extended2">"test program" | basic</query>
<query index="test" mode="extended2">"test that"~3 | basic</query>
<query index="test" mode="extended2">"test that"~3|basic</query>
<query index="test" mode="extended2">@title sample @body -basic</query>
<query index="test" mode="extended2">-basic|perl sample</query>
<query index="test" mode="extended2">-basic|perl sample</query>
<query index="test" mode="extended2">77</query>
<query index="test" mode="extended2">0077</query>
<query index="test" mode="extended2">@title test</query>
<query index="test" mode="extended2">@!title aaa</query>
<query index="test" mode="extended2">@!(title,body) aaa</query>
<query index="test" mode="extended2">@@relaxed @!nonexistent test</query>
<query index="test" mode="extended2" expect_error="1">@ttitle test</query>
<query index="test" mode="extended2" expect_error="1">@@title test</query>
<query index="test" mode="extended2">@@relaxed @ttitle test</query>
<query index="test" mode="extended2">""</query>
<query index="test" mode="extended2">@title ""</query>
<query index="test" mode="extended2">("")</query>
<query index="test" mode="extended2">"phrase (!query)/ ~on @steroids"</query>
<query index="test" mode="extended2">1234567812345678</query>
<!-- regression of query parser memory corruption -->
<query index="test" mode="extended2" expect_error="1">1 -word@#1215</query>
<query index="test" mode="extended2">1-word@#1215</query>
<query index="test" mode="extended2">canon 16 35</query>
<query index="test" mode="extended2">canon 16-35</query>
</queries>
<sphqueries>
<sphinxql>select * from fld where match ( '@title spec1 @body dummy1' ) order by id asc</sphinxql>
<sphinxql>select * from fld where match ( '@title ( ( spec2 ) (dummy2) | text2 ) ' ) order by id asc</sphinxql>
<sphinxql>select * from fld where match ( '@title ( ( spec3 ) @body (dummy3) | text3 ) ' ) order by id asc</sphinxql>
<sphinxql>select * from fld where match ( '@title ( ( spec4 ) (dummy4) | @body text4 ) ' ) order by id asc</sphinxql>
<sphinxql>select * from fld where match ( '@title ( ( spec4 ) (dummy4) @body text4 ) ' ) order by id asc</sphinxql>
<sphinxql>select * from fld where match ( '@title ( ( spec4 ) dummy4 | @body text4 ) ' ) order by id asc</sphinxql>
<sphinxql>select * from fld where match ( '@title ( ( spec4 ) dummy4 @body text4 ) ' ) order by id asc</sphinxql>
<sphinxql>select * from fld where match ( '@title ( ( spec5 ) @body (dummy5) | text5 ) of my ' ) order by id asc</sphinxql>
<sphinxql>select * from fld where match ( 'jolly rodger ;)' )</sphinxql>
<sphinxql>select * from fld where match ( '(((((((((( crashing 9 brackets')</sphinxql>
<sphinxql>select * from fld where match ( '@title(spec1 absentword) | @body(dummy1)' ) and id=1000 option ranker='wordcount', field_weights=(title=1000, body=1)</sphinxql>
<sphinxql>select * from fld where match ( 'one | !two' )</sphinxql>
<!-- regression @@relaxed vs complex query -->
<sphinxql>select * from test where match ( '@@relaxed ((@title sample) | (@ttitle sample) (@body program -in )) ' )</sphinxql>
<sphinxql>select * from test where match ( '@@relaxed ((@ttitle sample) | (@title sample) (@body program -in )) ' )</sphinxql>
<sphinxql>select * from test where match ( '@@relaxed ((@ttitle sample) | (@ttitle sample) (@body program -in )) ' )</sphinxql>
</sphqueries>
<db_create>
CREATE TABLE `test_table`
(
`document_id` int(11) NOT NULL default '0',
`title` varchar(255) NOT NULL default '',
`body` varchar(255) NOT NULL default ''
) CHARACTER SET utf8
</db_create>
<db_drop>
DROP TABLE IF EXISTS `test_table`
</db_drop>
<db_insert>SET NAMES utf8</db_insert>
<db_insert>
INSERT INTO `test_table` VALUES
( 111, '', 'basic query' ),
( 222, '', 'phrase query on steroids' ),
( 333, 'sample program', 'this is a test program that prints out "hello world" to the console' ),
( 444, '', 'china 吐我' ),
( 555, 'sample program two', 'something written in basic | canon ef 16-35 lens' ),
( 666, 'sample program three', 'something written in perl' ),
( 777, '', '77 lies multiplied by 77' ),
( 888, '', 'agent 0077' ),
( 999, '', '1234567812345678' ),
( 901, 'aaa', 'aaa' ),
( 902, 'aaa', '' ),
( 903, '', 'aaa' ),
(1000, 'spec1', 'dummy1' ),
(1001, 'spec1 dummy1', '' ),
(1002, '', 'spec1 dummy1' ),
(1003, 'spec2 dummy2 text2', '' ),
(1004, 'spec2', 'dummy2 text2' ),
(1005, 'spec3', 'dummy3 text3' ),
(1006, 'spec3 dummy3 text3', 'spec3' ),
(1007, 'spec4 dummy4', 'text4' ),
(1008, 'spec4', 'dummy4 text4' ),
(1009, 'spec5 of my', 'dummy5' ),
(1010, 'spec5', 'of my text5' )
</db_insert>
</test>
|