From 1dd51df91e3410ca214fcf9475bcb05495550232 Mon Sep 17 00:00:00 2001 From: Jianliang Qi Date: Mon, 4 Nov 2024 15:57:42 +0800 Subject: [PATCH] fix ut for 2.0 --- be/src/clucene | 2 +- .../segment_v2/inverted_index/data/data1.csv | 1000 +++++++++++++++++ .../segment_v2/inverted_index/data/data2.csv | 1000 +++++++++++++++++ .../index_compaction_with_deleted_term.cpp | 272 ++--- 4 files changed, 2084 insertions(+), 190 deletions(-) create mode 100644 be/test/olap/rowset/segment_v2/inverted_index/data/data1.csv create mode 100644 be/test/olap/rowset/segment_v2/inverted_index/data/data2.csv diff --git a/be/src/clucene b/be/src/clucene index ffc2051f090ff4..3526de75334f64 160000 --- a/be/src/clucene +++ b/be/src/clucene @@ -1 +1 @@ -Subproject commit ffc2051f090ff4a2e36e9a243b7650dd822f00d3 +Subproject commit 3526de75334f64aea3f299d395c8a460a9054e37 diff --git a/be/test/olap/rowset/segment_v2/inverted_index/data/data1.csv b/be/test/olap/rowset/segment_v2/inverted_index/data/data1.csv new file mode 100644 index 00000000000000..fa4e2129584999 --- /dev/null +++ b/be/test/olap/rowset/segment_v2/inverted_index/data/data1.csv @@ -0,0 +1,1000 @@ +89,fine,https://musicstream.com,97 +44,good,https://yourblog.net,74 +72,ok,https://musicstream.com,80 +14,yes,https://shoponline.com,50 +47,maybe,https://github.com,16 +97,maybe,http://forum.com,88 +17,yes,https://musicstream.com,13 +87,good,https://musicstream.com,53 +6,excellent,http://forum.com,49 +4,terrible,https://yourblog.net,58 +56,bad,https://google.com,10 +5,no,http://example.com,93 +30,bad,http://news.com,28 +30,maybe,https://musicstream.com,13 +83,bad,https://yourblog.net,48 +41,great,https://videosite.com,73 +10,terrible,http://news.com,6 +80,no,https://shoponline.com,21 +92,fine,https://github.com,20 +71,terrible,http://forum.com,8 +84,good,http://mysite.org,77 +25,no,http://example.com,71 +52,maybe,http://mysite.org,0 +99,great,http://news.com,74 +59,ok,http://mysite.org,46 +47,ok,http://mysite.org,26 +77,bad,https://musicstream.com,73 +53,excellent,https://github.com,97 +97,ok,http://example.com,69 +88,great,https://musicstream.com,47 +31,fine,https://videosite.com,1 +66,great,https://google.com,67 +16,yes,http://forum.com,43 +31,yes,http://news.com,49 +35,good,https://github.com,48 +11,terrible,https://google.com,56 +53,maybe,http://mysite.org,87 +16,bad,https://google.com,77 +55,terrible,http://news.com,33 +51,yes,https://google.com,68 +71,good,https://yourblog.net,71 +32,great,https://github.com,37 +22,maybe,http://example.com,16 +36,ok,http://forum.com,52 +97,good,https://yourblog.net,100 +54,no,https://videosite.com,90 +38,terrible,https://shoponline.com,17 +81,excellent,https://yourblog.net,11 +66,great,http://mysite.org,4 +27,fine,https://shoponline.com,88 +48,good,https://musicstream.com,16 +78,good,https://shoponline.com,63 +34,bad,https://shoponline.com,77 +19,yes,https://shoponline.com,98 +39,terrible,https://github.com,86 +83,excellent,http://news.com,63 +38,no,https://google.com,64 +43,terrible,https://yourblog.net,30 +30,fine,https://videosite.com,72 +73,great,http://mysite.org,31 +96,good,http://example.com,16 +25,yes,http://mysite.org,80 +98,fine,https://shoponline.com,46 +60,fine,https://musicstream.com,66 +90,yes,http://news.com,80 +41,excellent,https://github.com,56 +86,no,http://forum.com,31 +81,ok,http://forum.com,71 +42,bad,https://musicstream.com,97 +90,terrible,https://videosite.com,57 +22,yes,http://forum.com,15 +34,excellent,https://shoponline.com,77 +30,no,https://yourblog.net,85 +51,ok,http://news.com,52 +28,terrible,http://example.com,37 +23,yes,http://forum.com,83 +42,no,http://forum.com,15 +83,maybe,http://forum.com,10 +59,ok,https://github.com,100 +83,maybe,http://mysite.org,78 +4,good,https://videosite.com,68 +63,good,http://forum.com,71 +61,ok,http://mysite.org,66 +83,great,http://example.com,75 +82,no,https://google.com,95 +71,terrible,https://musicstream.com,19 +42,bad,http://mysite.org,66 +14,great,https://google.com,83 +4,yes,https://yourblog.net,84 +49,great,https://github.com,2 +2,yes,http://mysite.org,84 +33,excellent,http://forum.com,78 +5,good,http://example.com,53 +5,great,https://yourblog.net,86 +80,yes,http://mysite.org,85 +8,great,https://shoponline.com,84 +26,no,https://github.com,56 +82,fine,https://shoponline.com,39 +0,bad,https://videosite.com,49 +30,terrible,https://videosite.com,41 +76,maybe,http://news.com,60 +44,maybe,http://example.com,33 +9,terrible,http://forum.com,93 +25,ok,https://yourblog.net,62 +45,great,https://google.com,17 +5,terrible,http://news.com,95 +49,good,http://example.com,97 +29,great,https://shoponline.com,69 +73,good,https://google.com,23 +94,yes,http://forum.com,25 +58,bad,https://videosite.com,32 +98,excellent,https://musicstream.com,36 +25,good,http://example.com,56 +14,ok,https://yourblog.net,34 +30,fine,http://example.com,38 +47,yes,http://mysite.org,71 +20,fine,http://news.com,1 +89,bad,https://google.com,50 +8,fine,https://google.com,64 +21,maybe,https://musicstream.com,11 +12,fine,https://videosite.com,48 +27,maybe,https://musicstream.com,2 +76,ok,https://musicstream.com,30 +38,excellent,https://videosite.com,54 +57,terrible,https://yourblog.net,22 +21,good,https://google.com,39 +32,good,https://yourblog.net,68 +47,terrible,https://google.com,49 +90,good,http://mysite.org,21 +5,yes,http://news.com,33 +49,no,http://news.com,54 +76,maybe,http://news.com,16 +24,maybe,http://forum.com,17 +77,good,http://example.com,92 +28,excellent,http://example.com,27 +27,no,https://github.com,52 +55,ok,http://forum.com,97 +85,bad,https://shoponline.com,43 +24,terrible,http://news.com,39 +30,excellent,http://mysite.org,72 +70,maybe,http://mysite.org,76 +14,good,https://videosite.com,32 +73,no,http://news.com,25 +29,terrible,http://mysite.org,45 +52,great,http://news.com,11 +26,yes,http://forum.com,17 +30,excellent,http://news.com,88 +95,great,https://musicstream.com,63 +33,great,https://github.com,70 +26,great,https://github.com,17 +76,great,https://shoponline.com,94 +93,bad,https://google.com,29 +48,no,https://yourblog.net,93 +42,yes,https://videosite.com,71 +4,fine,https://github.com,62 +34,maybe,http://forum.com,78 +36,yes,https://google.com,39 +48,bad,https://shoponline.com,17 +84,no,https://videosite.com,11 +87,ok,https://musicstream.com,51 +7,ok,https://google.com,73 +81,bad,https://github.com,91 +92,ok,https://google.com,82 +15,terrible,http://forum.com,64 +6,excellent,https://google.com,70 +35,bad,http://example.com,48 +96,maybe,https://shoponline.com,96 +25,fine,http://news.com,43 +9,no,http://mysite.org,14 +66,yes,https://videosite.com,87 +76,maybe,https://musicstream.com,13 +51,good,http://forum.com,1 +31,great,http://news.com,51 +72,fine,http://news.com,70 +63,no,http://forum.com,5 +73,great,https://yourblog.net,81 +13,terrible,https://github.com,27 +98,excellent,https://videosite.com,29 +71,good,http://news.com,68 +89,no,https://musicstream.com,60 +68,excellent,http://news.com,54 +76,good,https://google.com,79 +69,good,http://mysite.org,99 +35,good,http://news.com,70 +97,yes,https://yourblog.net,63 +44,ok,https://yourblog.net,4 +73,terrible,http://news.com,36 +37,yes,https://github.com,61 +26,fine,https://videosite.com,41 +37,excellent,https://musicstream.com,9 +18,yes,https://github.com,81 +54,excellent,https://shoponline.com,52 +73,great,https://yourblog.net,67 +19,bad,http://example.com,86 +1,terrible,http://mysite.org,16 +62,fine,https://musicstream.com,64 +61,excellent,https://shoponline.com,93 +38,bad,https://videosite.com,61 +55,great,http://news.com,35 +47,great,https://yourblog.net,42 +36,good,https://yourblog.net,40 +26,ok,http://example.com,58 +40,great,https://github.com,0 +81,fine,https://musicstream.com,92 +50,yes,https://github.com,21 +98,maybe,https://google.com,2 +37,bad,https://videosite.com,90 +39,excellent,https://yourblog.net,31 +81,ok,https://musicstream.com,90 +10,bad,http://news.com,18 +93,good,http://example.com,93 +65,fine,http://news.com,72 +10,yes,https://yourblog.net,77 +5,good,http://forum.com,52 +75,fine,https://github.com,67 +40,excellent,http://example.com,27 +21,good,http://example.com,0 +70,fine,http://forum.com,71 +72,no,https://videosite.com,87 +86,no,http://example.com,63 +5,yes,http://example.com,3 +5,fine,http://example.com,68 +36,excellent,https://videosite.com,77 +3,bad,https://github.com,12 +40,bad,http://example.com,53 +33,maybe,https://shoponline.com,3 +80,maybe,https://musicstream.com,49 +42,ok,https://musicstream.com,53 +17,ok,https://yourblog.net,54 +94,yes,https://musicstream.com,20 +16,great,https://videosite.com,42 +32,great,https://shoponline.com,96 +48,ok,http://mysite.org,34 +30,no,http://forum.com,99 +17,excellent,http://forum.com,57 +73,bad,http://forum.com,55 +24,no,https://videosite.com,97 +99,no,http://forum.com,96 +91,excellent,https://musicstream.com,85 +72,excellent,https://videosite.com,60 +74,maybe,http://mysite.org,1 +65,good,https://videosite.com,16 +58,maybe,http://forum.com,9 +97,good,http://example.com,68 +39,good,http://news.com,29 +30,no,http://forum.com,96 +99,maybe,http://mysite.org,64 +66,terrible,https://yourblog.net,0 +72,good,http://example.com,59 +85,terrible,https://yourblog.net,69 +41,great,https://github.com,97 +95,good,https://yourblog.net,42 +56,good,https://shoponline.com,43 +57,good,http://news.com,9 +68,good,http://example.com,80 +80,yes,https://videosite.com,14 +95,great,https://musicstream.com,43 +2,terrible,http://mysite.org,23 +94,terrible,https://shoponline.com,12 +45,maybe,https://github.com,67 +61,maybe,https://shoponline.com,46 +28,excellent,https://musicstream.com,10 +9,no,http://example.com,36 +75,great,https://google.com,43 +54,maybe,http://news.com,16 +49,bad,https://google.com,62 +33,fine,http://example.com,13 +93,excellent,http://example.com,11 +37,ok,https://videosite.com,67 +92,ok,http://forum.com,33 +1,excellent,https://shoponline.com,100 +87,no,http://mysite.org,0 +89,terrible,http://example.com,11 +26,yes,https://github.com,79 +44,terrible,https://yourblog.net,98 +69,excellent,http://news.com,71 +76,excellent,https://yourblog.net,26 +19,fine,https://google.com,16 +71,great,http://mysite.org,100 +99,no,http://forum.com,20 +98,fine,https://google.com,53 +48,fine,http://news.com,42 +29,maybe,http://news.com,29 +6,terrible,https://videosite.com,40 +77,great,http://forum.com,13 +34,terrible,https://yourblog.net,86 +46,terrible,https://musicstream.com,86 +80,great,https://videosite.com,31 +33,fine,https://google.com,80 +49,excellent,http://example.com,70 +80,ok,http://news.com,49 +72,yes,https://musicstream.com,78 +95,ok,https://videosite.com,4 +70,no,https://github.com,100 +1,yes,https://musicstream.com,35 +26,no,http://mysite.org,45 +72,good,https://videosite.com,28 +23,bad,http://mysite.org,56 +4,great,http://example.com,56 +15,great,https://github.com,52 +89,good,http://example.com,77 +85,ok,http://forum.com,86 +50,fine,http://mysite.org,7 +74,bad,https://videosite.com,78 +1,no,https://github.com,43 +71,maybe,https://github.com,11 +79,no,https://musicstream.com,57 +90,maybe,https://github.com,68 +19,bad,https://github.com,53 +53,good,https://google.com,59 +5,fine,http://mysite.org,67 +34,maybe,http://example.com,76 +40,terrible,https://google.com,50 +99,excellent,http://news.com,9 +77,bad,https://google.com,90 +36,bad,https://videosite.com,75 +85,excellent,https://github.com,40 +8,good,http://mysite.org,17 +43,good,http://mysite.org,79 +15,yes,https://musicstream.com,86 +22,maybe,https://yourblog.net,88 +86,yes,https://github.com,65 +18,terrible,http://news.com,48 +4,terrible,https://yourblog.net,85 +100,fine,https://yourblog.net,3 +41,good,http://forum.com,65 +64,terrible,https://github.com,34 +92,bad,https://google.com,21 +87,excellent,http://mysite.org,37 +30,excellent,https://github.com,14 +39,good,http://example.com,44 +68,yes,https://videosite.com,38 +31,maybe,https://yourblog.net,97 +36,bad,https://shoponline.com,20 +69,yes,https://shoponline.com,94 +45,good,http://mysite.org,30 +84,bad,http://news.com,73 +71,excellent,https://musicstream.com,26 +46,bad,http://mysite.org,4 +98,fine,https://yourblog.net,51 +17,excellent,https://videosite.com,77 +32,excellent,https://yourblog.net,23 +37,good,http://news.com,98 +60,ok,https://musicstream.com,24 +68,ok,https://videosite.com,44 +96,fine,https://musicstream.com,44 +65,yes,https://github.com,81 +25,terrible,https://musicstream.com,61 +54,terrible,https://shoponline.com,72 +5,fine,https://yourblog.net,93 +27,terrible,http://example.com,3 +30,bad,https://google.com,9 +99,excellent,http://forum.com,6 +31,yes,https://google.com,93 +82,good,https://google.com,56 +38,fine,https://google.com,56 +29,ok,https://yourblog.net,42 +91,no,https://google.com,62 +58,good,http://example.com,80 +75,fine,http://example.com,97 +59,maybe,https://google.com,13 +23,ok,http://mysite.org,38 +50,great,https://shoponline.com,43 +0,no,http://forum.com,98 +4,no,https://github.com,47 +20,fine,https://shoponline.com,52 +38,fine,http://example.com,21 +43,bad,http://mysite.org,15 +39,great,https://google.com,65 +92,yes,https://videosite.com,10 +35,terrible,http://mysite.org,53 +58,terrible,https://videosite.com,92 +56,yes,https://musicstream.com,49 +30,ok,https://shoponline.com,45 +24,excellent,https://github.com,68 +33,bad,http://forum.com,3 +87,no,http://forum.com,88 +31,fine,http://mysite.org,32 +40,yes,http://mysite.org,44 +17,yes,http://mysite.org,53 +4,fine,https://shoponline.com,31 +89,bad,https://musicstream.com,86 +24,excellent,https://github.com,97 +58,no,https://github.com,49 +26,ok,http://example.com,62 +59,great,https://shoponline.com,72 +22,yes,https://videosite.com,82 +27,great,http://example.com,24 +1,terrible,https://github.com,25 +2,bad,https://videosite.com,94 +39,good,http://news.com,16 +90,no,http://news.com,25 +6,no,https://yourblog.net,68 +73,ok,http://mysite.org,27 +68,no,https://google.com,64 +26,maybe,http://forum.com,63 +32,excellent,https://musicstream.com,58 +63,fine,https://videosite.com,35 +94,great,https://videosite.com,6 +8,ok,https://yourblog.net,16 +50,ok,https://videosite.com,46 +15,terrible,http://mysite.org,6 +53,excellent,https://github.com,30 +83,maybe,https://github.com,62 +78,good,https://shoponline.com,10 +96,fine,http://news.com,7 +73,ok,https://google.com,90 +95,great,https://shoponline.com,45 +61,excellent,https://github.com,26 +80,no,https://google.com,89 +80,great,http://forum.com,87 +12,excellent,https://musicstream.com,35 +59,great,https://musicstream.com,60 +27,ok,http://example.com,94 +68,maybe,https://google.com,25 +19,terrible,https://yourblog.net,77 +59,yes,http://mysite.org,67 +65,great,https://musicstream.com,70 +38,good,https://google.com,63 +2,no,http://example.com,40 +7,great,http://forum.com,32 +93,great,https://yourblog.net,47 +66,excellent,http://mysite.org,89 +28,excellent,https://shoponline.com,42 +28,no,https://google.com,71 +83,terrible,https://videosite.com,82 +33,good,https://musicstream.com,87 +24,terrible,http://news.com,30 +87,yes,http://example.com,25 +0,ok,http://example.com,87 +93,bad,https://musicstream.com,24 +16,yes,http://mysite.org,63 +81,yes,http://example.com,0 +85,yes,https://videosite.com,96 +62,bad,http://mysite.org,86 +43,great,https://shoponline.com,56 +62,no,https://musicstream.com,45 +35,terrible,http://forum.com,66 +65,ok,https://videosite.com,95 +70,excellent,https://yourblog.net,13 +50,bad,https://google.com,94 +54,no,http://forum.com,44 +1,bad,https://videosite.com,4 +82,yes,https://yourblog.net,9 +96,maybe,https://videosite.com,3 +87,excellent,https://musicstream.com,14 +99,fine,https://google.com,36 +38,bad,http://example.com,71 +21,terrible,http://mysite.org,91 +23,ok,https://yourblog.net,17 +88,good,http://news.com,23 +83,great,https://musicstream.com,68 +25,good,http://news.com,93 +60,fine,https://google.com,89 +45,excellent,http://example.com,21 +59,bad,https://google.com,38 +22,bad,https://shoponline.com,11 +54,maybe,http://example.com,97 +18,great,http://forum.com,35 +37,ok,https://google.com,11 +59,no,http://news.com,68 +5,great,http://example.com,12 +32,yes,https://yourblog.net,15 +91,fine,http://forum.com,12 +40,no,http://news.com,40 +87,terrible,https://videosite.com,28 +15,no,https://videosite.com,52 +63,yes,http://forum.com,39 +81,terrible,http://news.com,36 +53,good,https://google.com,45 +12,excellent,https://shoponline.com,42 +20,ok,http://news.com,78 +65,excellent,http://forum.com,65 +64,maybe,https://shoponline.com,100 +73,no,https://yourblog.net,86 +44,great,http://example.com,58 +7,good,https://yourblog.net,21 +10,good,https://google.com,33 +11,no,https://musicstream.com,24 +59,no,https://github.com,12 +35,yes,http://news.com,65 +78,good,http://example.com,97 +22,no,https://google.com,2 +64,excellent,http://mysite.org,17 +18,ok,https://shoponline.com,21 +91,fine,https://musicstream.com,50 +92,great,http://news.com,9 +13,terrible,https://github.com,17 +13,excellent,https://yourblog.net,43 +93,no,http://mysite.org,80 +90,fine,http://forum.com,59 +33,great,https://videosite.com,54 +94,bad,http://news.com,87 +52,maybe,https://videosite.com,63 +55,terrible,http://forum.com,4 +12,yes,https://videosite.com,5 +50,terrible,http://forum.com,35 +42,bad,https://google.com,77 +69,great,https://shoponline.com,57 +74,maybe,https://google.com,66 +52,ok,http://example.com,86 +18,yes,https://google.com,7 +7,fine,http://forum.com,94 +11,great,https://google.com,69 +76,excellent,https://shoponline.com,79 +20,excellent,https://yourblog.net,98 +60,no,https://videosite.com,21 +52,no,http://forum.com,33 +52,excellent,http://forum.com,57 +48,ok,https://github.com,33 +32,excellent,https://musicstream.com,74 +39,ok,https://yourblog.net,88 +98,excellent,http://example.com,0 +3,excellent,http://example.com,97 +76,excellent,http://mysite.org,16 +44,good,https://videosite.com,45 +51,great,http://mysite.org,96 +44,ok,http://news.com,62 +26,excellent,http://news.com,54 +69,fine,https://shoponline.com,12 +16,excellent,http://forum.com,24 +36,bad,https://musicstream.com,54 +12,good,http://news.com,58 +72,bad,https://videosite.com,87 +2,yes,http://mysite.org,62 +38,yes,https://shoponline.com,29 +31,good,https://yourblog.net,36 +43,bad,https://google.com,34 +72,fine,https://shoponline.com,96 +8,fine,https://yourblog.net,94 +29,ok,https://github.com,90 +53,ok,http://mysite.org,12 +12,excellent,http://forum.com,41 +25,terrible,http://mysite.org,19 +97,bad,https://yourblog.net,32 +2,good,http://mysite.org,3 +96,bad,https://github.com,35 +67,yes,http://forum.com,15 +37,fine,https://google.com,74 +57,no,https://google.com,62 +50,excellent,http://forum.com,21 +40,terrible,https://google.com,29 +68,good,https://shoponline.com,63 +51,maybe,http://news.com,35 +0,great,http://example.com,96 +71,great,http://mysite.org,46 +33,yes,http://news.com,23 +51,great,https://videosite.com,21 +16,excellent,http://example.com,69 +88,no,https://github.com,73 +7,maybe,https://github.com,76 +33,terrible,https://musicstream.com,39 +92,great,https://yourblog.net,47 +57,maybe,https://videosite.com,32 +37,ok,https://videosite.com,20 +12,maybe,https://musicstream.com,84 +72,bad,https://google.com,44 +35,ok,http://mysite.org,4 +17,yes,http://mysite.org,22 +62,excellent,http://news.com,35 +33,bad,https://yourblog.net,66 +45,excellent,https://shoponline.com,38 +99,fine,https://yourblog.net,93 +83,terrible,https://videosite.com,55 +61,fine,https://videosite.com,56 +91,yes,http://forum.com,72 +91,yes,http://news.com,15 +89,fine,http://example.com,17 +32,ok,http://example.com,86 +50,bad,http://mysite.org,65 +12,fine,https://musicstream.com,30 +45,no,http://news.com,75 +42,terrible,https://shoponline.com,95 +48,excellent,http://mysite.org,50 +30,terrible,https://yourblog.net,34 +54,good,http://forum.com,58 +2,excellent,http://mysite.org,89 +15,no,http://news.com,61 +88,fine,https://google.com,76 +96,no,https://musicstream.com,26 +98,fine,https://yourblog.net,18 +52,maybe,https://videosite.com,17 +34,great,https://yourblog.net,20 +80,ok,https://shoponline.com,70 +13,ok,http://news.com,17 +2,terrible,http://forum.com,3 +86,good,http://news.com,68 +51,bad,http://example.com,7 +29,maybe,https://videosite.com,85 +5,no,http://mysite.org,53 +90,ok,http://forum.com,33 +80,fine,https://google.com,62 +52,yes,http://forum.com,2 +38,yes,http://news.com,90 +96,ok,https://videosite.com,9 +13,ok,https://github.com,98 +18,maybe,http://example.com,59 +22,yes,https://videosite.com,40 +36,great,http://example.com,24 +66,terrible,https://shoponline.com,46 +99,maybe,http://example.com,92 +85,good,http://forum.com,96 +14,fine,https://google.com,68 +7,good,http://news.com,75 +37,no,https://shoponline.com,47 +86,excellent,https://yourblog.net,100 +70,no,http://mysite.org,7 +40,yes,http://mysite.org,36 +92,good,https://shoponline.com,92 +79,excellent,http://example.com,80 +58,no,https://yourblog.net,99 +28,yes,https://yourblog.net,36 +81,great,http://mysite.org,36 +14,excellent,https://musicstream.com,23 +18,no,https://musicstream.com,54 +17,great,https://musicstream.com,3 +21,great,https://shoponline.com,15 +10,terrible,https://musicstream.com,68 +94,terrible,http://example.com,13 +2,good,https://google.com,55 +76,yes,https://musicstream.com,84 +10,maybe,https://google.com,99 +97,yes,http://forum.com,42 +63,excellent,https://videosite.com,11 +13,ok,http://example.com,87 +76,great,http://news.com,40 +75,good,https://yourblog.net,98 +35,great,https://shoponline.com,94 +71,maybe,http://mysite.org,6 +34,no,http://forum.com,59 +29,fine,http://example.com,4 +1,yes,http://mysite.org,27 +74,maybe,https://shoponline.com,14 +26,great,http://news.com,84 +30,no,https://videosite.com,1 +21,excellent,https://google.com,81 +74,yes,http://example.com,24 +23,no,https://videosite.com,88 +46,good,https://musicstream.com,77 +62,ok,https://shoponline.com,97 +37,ok,https://yourblog.net,36 +48,excellent,https://yourblog.net,4 +27,excellent,https://videosite.com,33 +24,terrible,https://google.com,17 +1,yes,http://news.com,28 +57,ok,http://example.com,93 +84,good,https://yourblog.net,88 +92,great,https://musicstream.com,61 +64,yes,https://musicstream.com,85 +94,ok,https://yourblog.net,96 +67,ok,http://forum.com,29 +66,great,https://github.com,67 +91,bad,http://example.com,19 +95,great,http://mysite.org,0 +68,ok,http://example.com,67 +3,excellent,https://github.com,49 +61,maybe,https://yourblog.net,100 +19,bad,https://videosite.com,100 +58,excellent,http://forum.com,25 +45,ok,https://yourblog.net,57 +43,maybe,https://shoponline.com,52 +60,terrible,http://example.com,97 +19,bad,https://yourblog.net,76 +26,fine,https://musicstream.com,76 +51,excellent,https://videosite.com,88 +84,fine,http://mysite.org,31 +99,great,https://github.com,30 +60,terrible,http://forum.com,48 +28,ok,https://yourblog.net,58 +23,terrible,https://musicstream.com,37 +41,great,https://shoponline.com,1 +18,ok,https://github.com,6 +39,ok,http://mysite.org,65 +14,terrible,https://google.com,96 +86,fine,http://forum.com,15 +24,yes,https://yourblog.net,1 +86,good,https://github.com,9 +20,good,http://news.com,3 +94,maybe,https://github.com,52 +19,yes,http://forum.com,88 +0,great,https://google.com,37 +5,ok,https://yourblog.net,69 +29,terrible,https://google.com,56 +26,great,https://musicstream.com,89 +64,fine,https://yourblog.net,5 +51,yes,https://yourblog.net,15 +14,excellent,https://google.com,89 +48,ok,https://github.com,60 +77,great,https://musicstream.com,80 +28,bad,https://musicstream.com,46 +8,no,https://videosite.com,32 +48,great,https://google.com,9 +91,ok,https://github.com,12 +82,great,https://videosite.com,2 +99,terrible,http://forum.com,46 +82,maybe,http://forum.com,21 +73,good,http://forum.com,51 +32,bad,https://google.com,30 +52,maybe,http://mysite.org,72 +53,maybe,https://github.com,100 +100,bad,http://example.com,53 +8,ok,http://example.com,28 +62,bad,http://example.com,56 +61,yes,https://shoponline.com,17 +44,bad,http://mysite.org,32 +54,good,https://shoponline.com,16 +4,bad,http://forum.com,75 +65,excellent,http://news.com,4 +72,yes,https://google.com,25 +68,ok,https://shoponline.com,72 +81,excellent,https://yourblog.net,19 +99,good,https://shoponline.com,9 +21,ok,http://news.com,86 +14,maybe,https://videosite.com,83 +63,bad,http://example.com,20 +14,bad,http://example.com,66 +9,no,https://shoponline.com,61 +53,fine,https://shoponline.com,6 +6,no,https://github.com,86 +69,good,https://videosite.com,23 +59,fine,https://musicstream.com,30 +35,maybe,https://github.com,44 +87,fine,https://musicstream.com,17 +55,excellent,https://musicstream.com,82 +22,fine,https://yourblog.net,88 +65,no,https://musicstream.com,22 +90,great,https://google.com,14 +49,good,https://github.com,77 +84,great,https://musicstream.com,10 +31,great,https://github.com,82 +48,terrible,http://news.com,74 +12,fine,http://mysite.org,74 +13,great,http://forum.com,28 +92,no,https://videosite.com,81 +6,no,https://videosite.com,100 +0,good,http://news.com,73 +33,good,https://google.com,38 +51,terrible,https://shoponline.com,17 +72,terrible,https://yourblog.net,52 +47,bad,https://shoponline.com,59 +41,ok,https://yourblog.net,98 +68,great,https://videosite.com,94 +77,good,http://news.com,87 +39,ok,http://example.com,89 +47,excellent,http://example.com,56 +31,bad,http://mysite.org,56 +53,fine,https://shoponline.com,18 +8,yes,https://github.com,63 +99,yes,http://example.com,70 +7,ok,http://example.com,85 +35,bad,https://shoponline.com,14 +73,terrible,https://yourblog.net,84 +26,no,https://musicstream.com,84 +43,bad,https://videosite.com,44 +10,great,https://google.com,48 +53,terrible,https://github.com,55 +58,good,http://forum.com,14 +27,fine,http://news.com,67 +73,ok,http://example.com,9 +28,ok,https://google.com,84 +78,maybe,https://yourblog.net,59 +79,great,https://shoponline.com,64 +16,ok,https://yourblog.net,67 +75,yes,https://musicstream.com,3 +33,good,https://shoponline.com,12 +78,great,https://yourblog.net,30 +90,yes,https://videosite.com,17 +29,ok,http://example.com,40 +94,good,http://example.com,88 +30,maybe,https://videosite.com,93 +57,no,https://google.com,35 +50,no,https://yourblog.net,55 +65,maybe,https://videosite.com,47 +85,maybe,https://google.com,74 +5,maybe,https://yourblog.net,4 +16,terrible,https://google.com,50 +69,yes,https://musicstream.com,45 +47,terrible,http://example.com,4 +27,ok,http://example.com,60 +17,yes,http://example.com,43 +8,yes,https://musicstream.com,98 +75,no,https://github.com,78 +41,great,https://google.com,34 +88,bad,http://example.com,78 +94,good,http://news.com,41 +26,fine,http://forum.com,37 +23,excellent,https://shoponline.com,72 +76,fine,https://yourblog.net,97 +72,terrible,https://shoponline.com,56 +57,fine,https://videosite.com,80 +42,excellent,https://musicstream.com,40 +96,fine,https://shoponline.com,69 +13,fine,https://yourblog.net,22 +2,fine,https://shoponline.com,43 +39,excellent,https://yourblog.net,41 +18,excellent,http://example.com,55 +14,no,https://google.com,52 +30,no,https://yourblog.net,44 +42,good,https://videosite.com,37 +98,yes,https://videosite.com,44 +77,ok,https://musicstream.com,48 +39,ok,https://yourblog.net,41 +60,yes,http://news.com,41 +30,good,https://musicstream.com,61 +33,fine,https://github.com,98 +25,fine,https://videosite.com,45 +43,yes,http://mysite.org,29 +69,maybe,https://musicstream.com,9 +56,bad,https://github.com,83 +29,ok,https://yourblog.net,43 +57,no,https://musicstream.com,99 +72,bad,http://mysite.org,33 +0,terrible,https://videosite.com,70 +43,ok,https://shoponline.com,79 +97,terrible,http://example.com,2 +45,bad,https://musicstream.com,98 +52,no,https://google.com,11 +69,bad,https://videosite.com,14 +52,yes,https://google.com,17 +89,fine,https://github.com,36 +6,yes,https://videosite.com,67 +72,excellent,http://mysite.org,68 +0,maybe,https://google.com,24 +95,yes,https://shoponline.com,62 +40,maybe,https://yourblog.net,14 +41,no,https://videosite.com,87 +58,fine,https://yourblog.net,43 +27,no,http://news.com,49 +46,great,http://example.com,1 +91,maybe,http://news.com,58 +34,no,https://github.com,19 +63,no,http://example.com,71 +100,good,https://musicstream.com,94 +81,yes,https://shoponline.com,46 +95,great,http://forum.com,5 +84,yes,https://shoponline.com,45 +72,excellent,https://github.com,73 +40,no,https://videosite.com,6 +6,excellent,http://news.com,10 +62,great,https://musicstream.com,82 +76,terrible,http://forum.com,4 +13,no,http://mysite.org,86 +36,great,http://example.com,83 +67,maybe,https://yourblog.net,43 +22,excellent,http://example.com,35 +18,great,https://google.com,15 +65,terrible,https://github.com,30 +44,fine,http://forum.com,18 +3,excellent,http://forum.com,37 +10,bad,http://forum.com,65 +17,ok,https://shoponline.com,66 +3,maybe,https://shoponline.com,13 +51,maybe,https://yourblog.net,28 +42,bad,http://news.com,23 +70,excellent,https://yourblog.net,91 +94,bad,https://videosite.com,20 +5,terrible,http://example.com,85 +21,excellent,https://yourblog.net,66 +71,fine,https://yourblog.net,59 +33,terrible,http://news.com,16 +36,bad,https://shoponline.com,86 +45,terrible,https://github.com,94 +62,excellent,https://github.com,42 +80,terrible,http://mysite.org,49 +81,bad,http://news.com,41 +68,bad,http://forum.com,54 +80,bad,https://shoponline.com,15 +63,good,https://videosite.com,34 +67,ok,http://example.com,59 +40,terrible,https://google.com,55 +34,bad,https://yourblog.net,49 +58,no,https://yourblog.net,37 +70,terrible,https://yourblog.net,19 +90,great,http://example.com,78 +5,maybe,https://github.com,96 +34,bad,http://example.com,100 +21,ok,http://news.com,32 +0,no,https://musicstream.com,92 +44,yes,https://musicstream.com,27 +71,bad,https://videosite.com,79 +6,terrible,http://mysite.org,46 +72,excellent,https://musicstream.com,50 +20,maybe,https://google.com,37 +56,great,http://mysite.org,22 +35,maybe,https://shoponline.com,18 +40,terrible,http://mysite.org,33 +40,yes,http://forum.com,39 +95,excellent,https://google.com,58 +31,great,https://musicstream.com,40 +45,good,http://forum.com,46 +59,excellent,http://example.com,44 +11,no,https://videosite.com,33 +78,terrible,https://google.com,92 +70,terrible,https://videosite.com,18 +38,excellent,https://videosite.com,97 +21,yes,http://forum.com,22 +30,fine,http://example.com,46 +64,fine,https://github.com,83 +22,no,https://shoponline.com,92 +14,good,http://forum.com,90 +93,maybe,https://google.com,22 +68,no,https://videosite.com,79 +13,maybe,https://videosite.com,47 +98,great,http://news.com,16 +3,great,https://videosite.com,72 +90,good,https://yourblog.net,78 +85,terrible,http://forum.com,92 +1,fine,https://videosite.com,74 +90,yes,http://forum.com,90 +86,yes,http://example.com,31 +40,terrible,https://github.com,84 +71,yes,https://shoponline.com,69 +4,terrible,https://shoponline.com,15 +74,excellent,http://news.com,97 +97,great,https://github.com,79 +67,great,https://videosite.com,76 +94,bad,https://github.com,51 +26,good,https://github.com,33 +52,fine,https://musicstream.com,17 +43,yes,https://github.com,12 +71,excellent,https://shoponline.com,53 +51,no,http://mysite.org,75 +46,excellent,https://shoponline.com,84 +84,excellent,https://videosite.com,79 +33,maybe,http://mysite.org,45 +17,yes,https://yourblog.net,71 +0,maybe,https://shoponline.com,32 +77,no,https://google.com,24 +5,fine,http://news.com,51 +20,great,https://shoponline.com,58 +26,fine,https://google.com,61 +11,terrible,http://forum.com,85 +14,fine,https://github.com,84 +54,ok,https://google.com,60 +7,excellent,https://google.com,47 +53,no,https://shoponline.com,38 +56,good,https://yourblog.net,35 +60,bad,https://shoponline.com,63 +62,great,https://videosite.com,21 +58,maybe,https://yourblog.net,19 +59,good,https://yourblog.net,11 +40,bad,https://github.com,61 +4,yes,http://example.com,81 +70,great,https://yourblog.net,6 +53,great,https://yourblog.net,37 +50,no,http://example.com,72 +97,ok,https://google.com,16 +83,fine,https://yourblog.net,84 +44,maybe,http://forum.com,38 +77,yes,https://github.com,55 +1,no,https://musicstream.com,22 +35,no,https://google.com,99 +88,excellent,https://yourblog.net,45 +62,ok,http://news.com,16 +51,fine,http://news.com,93 +17,fine,https://musicstream.com,44 +44,maybe,https://videosite.com,32 +6,terrible,https://videosite.com,39 +79,terrible,http://example.com,89 +41,great,https://shoponline.com,95 +63,yes,http://forum.com,92 +34,yes,http://example.com,28 +35,excellent,https://musicstream.com,25 +95,bad,https://shoponline.com,22 +47,maybe,http://example.com,50 +5,terrible,https://musicstream.com,6 +37,fine,http://forum.com,92 +94,good,https://github.com,33 +14,no,http://example.com,95 +63,excellent,http://forum.com,36 +24,fine,https://videosite.com,98 +7,fine,https://yourblog.net,71 +48,good,http://mysite.org,34 +32,fine,https://yourblog.net,31 +48,great,http://news.com,14 +35,no,http://example.com,77 +72,fine,https://google.com,37 +55,excellent,https://google.com,46 +63,great,http://mysite.org,60 +1,excellent,https://github.com,44 +37,fine,https://shoponline.com,72 +97,no,https://yourblog.net,88 +76,excellent,http://mysite.org,11 +88,ok,https://github.com,92 +83,no,http://news.com,44 +44,fine,https://videosite.com,64 +66,fine,https://google.com,87 +31,ok,http://mysite.org,64 +20,good,https://yourblog.net,69 +68,fine,http://forum.com,63 +41,terrible,http://example.com,47 +81,maybe,https://shoponline.com,33 +60,maybe,http://mysite.org,59 +26,good,http://news.com,87 +1,excellent,https://google.com,84 +79,ok,http://example.com,56 +72,excellent,http://mysite.org,64 +0,good,https://videosite.com,1 +97,no,http://news.com,91 +34,terrible,http://forum.com,36 diff --git a/be/test/olap/rowset/segment_v2/inverted_index/data/data2.csv b/be/test/olap/rowset/segment_v2/inverted_index/data/data2.csv new file mode 100644 index 00000000000000..0c8a15bafdd575 --- /dev/null +++ b/be/test/olap/rowset/segment_v2/inverted_index/data/data2.csv @@ -0,0 +1,1000 @@ +37,no,http://example.com,34 +59,ok,https://shoponline.com,9 +44,ok,http://news.com,40 +64,no,https://github.com,37 +61,no,https://musicstream.com,42 +68,great,http://mysite.org,49 +23,good,http://example.com,90 +49,fine,https://yourblog.net,23 +34,excellent,https://musicstream.com,69 +23,maybe,https://yourblog.net,15 +19,great,http://example.com,61 +68,excellent,https://github.com,78 +65,yes,https://shoponline.com,67 +84,excellent,https://videosite.com,8 +45,terrible,http://news.com,96 +13,bad,https://videosite.com,100 +8,great,http://mysite.org,66 +15,fine,http://news.com,18 +35,bad,https://videosite.com,27 +42,bad,https://videosite.com,0 +100,fine,http://forum.com,89 +94,yes,https://shoponline.com,28 +26,good,https://google.com,6 +55,yes,https://google.com,0 +66,excellent,https://google.com,30 +78,terrible,https://github.com,57 +31,excellent,http://news.com,61 +86,fine,http://mysite.org,30 +8,maybe,https://shoponline.com,15 +43,yes,http://mysite.org,57 +79,bad,http://forum.com,26 +28,no,http://mysite.org,64 +29,good,http://mysite.org,25 +17,excellent,https://shoponline.com,87 +72,good,http://forum.com,33 +89,excellent,https://google.com,100 +7,bad,https://google.com,22 +33,excellent,https://github.com,23 +42,fine,https://shoponline.com,79 +96,fine,https://github.com,94 +91,maybe,http://news.com,61 +53,good,http://forum.com,12 +96,yes,http://news.com,33 +20,bad,https://shoponline.com,9 +86,fine,https://musicstream.com,48 +76,maybe,https://google.com,38 +33,yes,https://videosite.com,35 +73,ok,https://videosite.com,40 +41,no,http://news.com,96 +15,bad,http://example.com,44 +18,excellent,https://shoponline.com,11 +46,excellent,https://yourblog.net,71 +87,bad,http://news.com,37 +50,yes,http://news.com,94 +80,excellent,https://musicstream.com,91 +95,maybe,https://google.com,45 +48,terrible,https://github.com,58 +91,ok,http://news.com,90 +42,yes,http://mysite.org,45 +27,excellent,https://github.com,50 +11,ok,https://github.com,61 +61,excellent,https://shoponline.com,54 +1,bad,http://mysite.org,20 +9,yes,http://example.com,30 +81,good,http://news.com,47 +24,ok,https://yourblog.net,52 +1,great,https://yourblog.net,34 +78,ok,http://mysite.org,51 +45,fine,http://news.com,46 +46,excellent,http://mysite.org,63 +18,bad,https://musicstream.com,9 +88,fine,https://github.com,65 +45,terrible,https://videosite.com,36 +79,no,http://forum.com,47 +59,great,https://videosite.com,20 +9,good,http://example.com,38 +17,maybe,https://yourblog.net,55 +52,terrible,http://forum.com,99 +32,maybe,https://videosite.com,12 +81,great,http://example.com,10 +27,yes,https://shoponline.com,5 +29,maybe,https://shoponline.com,32 +80,maybe,https://musicstream.com,4 +15,yes,http://forum.com,26 +58,maybe,https://github.com,39 +13,no,https://shoponline.com,13 +76,great,http://example.com,97 +15,excellent,https://yourblog.net,6 +34,good,http://mysite.org,57 +79,no,https://musicstream.com,85 +49,terrible,https://github.com,90 +92,great,https://google.com,60 +41,great,https://shoponline.com,27 +54,good,http://news.com,2 +24,maybe,http://news.com,57 +3,fine,https://musicstream.com,32 +42,bad,https://shoponline.com,48 +67,good,http://mysite.org,67 +86,ok,https://yourblog.net,6 +19,ok,https://google.com,23 +60,great,http://forum.com,42 +20,good,https://musicstream.com,21 +96,no,http://news.com,94 +4,good,https://videosite.com,85 +4,no,https://github.com,87 +28,bad,https://google.com,21 +85,excellent,https://musicstream.com,78 +80,great,http://mysite.org,18 +22,fine,https://videosite.com,19 +76,maybe,https://github.com,5 +55,bad,https://yourblog.net,49 +50,ok,https://shoponline.com,79 +86,terrible,https://google.com,84 +52,excellent,https://yourblog.net,72 +23,ok,https://musicstream.com,30 +15,excellent,https://videosite.com,23 +1,terrible,https://google.com,23 +59,terrible,http://mysite.org,71 +66,fine,https://musicstream.com,49 +37,bad,http://forum.com,18 +35,ok,https://videosite.com,53 +83,bad,https://google.com,90 +54,excellent,http://news.com,7 +52,fine,http://example.com,71 +51,fine,https://musicstream.com,5 +88,good,http://example.com,5 +0,terrible,https://yourblog.net,91 +72,great,https://videosite.com,34 +8,no,http://forum.com,76 +97,bad,https://yourblog.net,20 +40,fine,https://yourblog.net,76 +29,terrible,http://mysite.org,29 +5,yes,https://shoponline.com,6 +66,maybe,https://musicstream.com,97 +65,fine,https://yourblog.net,70 +3,terrible,http://mysite.org,96 +56,excellent,http://example.com,7 +93,yes,https://google.com,33 +11,terrible,https://github.com,87 +10,yes,http://forum.com,9 +28,terrible,http://mysite.org,40 +85,bad,https://google.com,71 +47,maybe,https://yourblog.net,45 +56,maybe,https://videosite.com,73 +30,terrible,http://mysite.org,22 +66,maybe,http://mysite.org,17 +34,good,https://google.com,56 +0,excellent,http://example.com,54 +24,yes,https://github.com,94 +50,good,https://videosite.com,70 +39,good,http://example.com,62 +41,terrible,http://forum.com,50 +26,great,http://example.com,79 +100,yes,https://google.com,30 +37,great,https://shoponline.com,45 +25,terrible,http://forum.com,72 +82,bad,https://yourblog.net,66 +62,ok,http://news.com,5 +67,excellent,https://musicstream.com,65 +26,maybe,http://mysite.org,37 +77,yes,http://forum.com,100 +32,terrible,https://musicstream.com,49 +20,great,https://yourblog.net,5 +45,maybe,https://google.com,30 +76,good,http://mysite.org,16 +79,great,https://github.com,91 +40,good,https://yourblog.net,83 +89,no,https://yourblog.net,92 +45,yes,http://mysite.org,23 +47,great,http://mysite.org,41 +80,terrible,https://musicstream.com,24 +49,good,https://shoponline.com,100 +85,terrible,https://yourblog.net,3 +31,great,https://github.com,53 +85,fine,https://videosite.com,53 +85,terrible,http://mysite.org,100 +42,bad,https://github.com,73 +93,no,http://forum.com,32 +64,excellent,http://example.com,92 +79,terrible,https://videosite.com,83 +83,bad,http://mysite.org,15 +41,yes,https://shoponline.com,73 +85,yes,http://forum.com,63 +43,yes,http://news.com,23 +27,bad,https://musicstream.com,57 +87,yes,https://google.com,82 +22,fine,https://musicstream.com,0 +68,good,https://shoponline.com,92 +79,excellent,https://videosite.com,39 +68,good,http://forum.com,18 +77,yes,https://github.com,13 +38,great,https://google.com,56 +91,maybe,https://yourblog.net,7 +59,bad,http://news.com,69 +24,great,http://forum.com,53 +91,great,http://news.com,12 +59,bad,https://musicstream.com,15 +14,excellent,https://musicstream.com,40 +79,maybe,http://mysite.org,96 +4,yes,http://forum.com,4 +15,bad,http://news.com,34 +87,good,http://news.com,79 +21,bad,https://github.com,21 +62,terrible,https://google.com,34 +54,ok,https://google.com,24 +57,no,https://videosite.com,9 +40,good,https://shoponline.com,60 +97,maybe,https://google.com,38 +99,no,https://yourblog.net,64 +24,no,https://shoponline.com,82 +17,fine,http://example.com,46 +55,no,https://google.com,47 +47,fine,http://forum.com,54 +17,yes,https://google.com,44 +28,ok,http://news.com,46 +57,excellent,https://google.com,79 +70,yes,https://google.com,36 +46,excellent,https://shoponline.com,71 +30,terrible,https://videosite.com,16 +55,excellent,https://shoponline.com,69 +90,maybe,https://videosite.com,73 +57,terrible,https://videosite.com,20 +7,ok,http://news.com,23 +53,yes,http://news.com,73 +16,bad,https://github.com,56 +35,ok,https://musicstream.com,97 +82,excellent,https://videosite.com,66 +22,yes,https://videosite.com,59 +70,no,http://mysite.org,57 +32,yes,https://shoponline.com,39 +78,yes,https://github.com,33 +70,ok,http://news.com,0 +38,fine,https://shoponline.com,58 +93,no,https://shoponline.com,34 +51,excellent,https://musicstream.com,11 +77,bad,http://example.com,52 +78,ok,http://forum.com,65 +30,bad,https://videosite.com,20 +41,ok,https://github.com,9 +68,yes,https://videosite.com,17 +88,terrible,http://news.com,99 +15,terrible,https://github.com,55 +38,ok,http://forum.com,78 +8,maybe,http://mysite.org,67 +77,bad,http://forum.com,46 +98,terrible,http://news.com,93 +42,maybe,https://videosite.com,57 +23,yes,https://musicstream.com,51 +79,great,http://mysite.org,27 +83,fine,http://example.com,8 +4,yes,http://news.com,48 +99,yes,http://forum.com,51 +40,no,https://google.com,59 +5,terrible,http://example.com,80 +33,great,https://yourblog.net,4 +36,maybe,https://videosite.com,36 +66,maybe,https://shoponline.com,30 +46,maybe,https://musicstream.com,30 +36,great,http://news.com,3 +79,no,http://forum.com,31 +77,excellent,https://google.com,30 +66,terrible,https://google.com,19 +12,yes,https://google.com,28 +13,terrible,https://yourblog.net,40 +46,yes,http://example.com,59 +91,terrible,https://videosite.com,84 +99,maybe,https://videosite.com,29 +100,fine,https://yourblog.net,81 +35,no,http://mysite.org,19 +11,no,https://google.com,28 +71,terrible,http://forum.com,98 +91,great,https://musicstream.com,87 +89,bad,https://videosite.com,28 +79,yes,https://musicstream.com,88 +48,fine,https://yourblog.net,4 +26,ok,https://yourblog.net,66 +77,great,https://shoponline.com,8 +80,fine,https://musicstream.com,37 +63,fine,http://forum.com,100 +95,excellent,http://news.com,90 +65,great,http://mysite.org,71 +21,yes,http://mysite.org,76 +84,terrible,https://shoponline.com,100 +38,ok,https://videosite.com,80 +17,maybe,https://shoponline.com,62 +51,bad,http://mysite.org,18 +71,excellent,https://github.com,60 +77,yes,https://musicstream.com,18 +1,bad,https://musicstream.com,55 +48,terrible,https://google.com,80 +15,bad,https://shoponline.com,68 +68,ok,https://videosite.com,7 +54,bad,https://musicstream.com,72 +79,excellent,https://videosite.com,53 +69,maybe,http://mysite.org,52 +66,bad,https://github.com,18 +86,no,https://shoponline.com,27 +30,great,https://google.com,90 +44,maybe,http://forum.com,80 +90,maybe,https://google.com,49 +84,good,https://github.com,18 +51,good,http://forum.com,69 +68,bad,http://mysite.org,17 +50,good,https://github.com,8 +39,great,http://news.com,45 +53,bad,https://shoponline.com,75 +45,yes,https://github.com,59 +70,bad,http://news.com,4 +83,ok,http://forum.com,98 +33,great,https://shoponline.com,48 +83,bad,https://yourblog.net,97 +34,yes,http://example.com,41 +78,yes,https://shoponline.com,70 +49,yes,http://mysite.org,9 +59,maybe,http://mysite.org,88 +75,good,http://example.com,96 +94,fine,http://forum.com,57 +53,good,http://news.com,66 +18,fine,https://musicstream.com,54 +81,yes,http://mysite.org,0 +63,fine,https://musicstream.com,57 +9,good,http://example.com,35 +93,bad,http://news.com,84 +28,no,https://videosite.com,4 +66,ok,http://example.com,42 +12,terrible,https://github.com,20 +95,yes,http://news.com,82 +58,excellent,https://yourblog.net,26 +21,terrible,https://musicstream.com,16 +23,excellent,https://github.com,56 +21,bad,https://github.com,33 +90,excellent,http://forum.com,65 +39,yes,https://google.com,76 +18,good,http://mysite.org,81 +44,good,http://example.com,71 +98,fine,http://news.com,21 +20,ok,http://news.com,62 +25,bad,https://shoponline.com,72 +2,fine,https://yourblog.net,37 +47,terrible,https://videosite.com,3 +18,no,https://yourblog.net,54 +32,bad,http://news.com,58 +22,terrible,https://videosite.com,54 +56,yes,https://shoponline.com,17 +56,no,http://forum.com,96 +5,yes,https://github.com,10 +12,bad,http://example.com,41 +22,no,http://example.com,80 +45,good,https://shoponline.com,35 +42,yes,http://mysite.org,24 +36,ok,https://google.com,80 +28,excellent,http://example.com,4 +5,good,https://shoponline.com,81 +68,great,https://yourblog.net,0 +20,yes,http://example.com,30 +75,good,https://yourblog.net,45 +81,no,http://mysite.org,88 +8,no,https://github.com,78 +41,terrible,https://github.com,59 +10,terrible,https://videosite.com,38 +42,fine,http://news.com,91 +27,terrible,https://shoponline.com,2 +9,terrible,http://mysite.org,30 +57,yes,http://forum.com,29 +67,excellent,https://github.com,92 +67,great,https://videosite.com,21 +88,bad,https://google.com,63 +86,terrible,https://github.com,30 +16,fine,http://news.com,80 +77,good,https://videosite.com,95 +16,ok,http://mysite.org,20 +8,terrible,http://example.com,34 +71,excellent,https://google.com,59 +31,maybe,https://shoponline.com,74 +57,no,http://mysite.org,21 +73,fine,https://shoponline.com,49 +88,great,http://forum.com,61 +89,fine,http://mysite.org,38 +84,fine,https://yourblog.net,24 +50,excellent,https://videosite.com,6 +82,good,https://github.com,96 +72,bad,https://yourblog.net,18 +55,no,http://example.com,22 +100,excellent,http://example.com,94 +50,maybe,http://mysite.org,14 +88,fine,http://forum.com,13 +56,ok,https://musicstream.com,69 +46,excellent,https://musicstream.com,14 +22,yes,https://github.com,57 +19,maybe,https://google.com,19 +68,excellent,http://example.com,11 +23,yes,https://videosite.com,64 +19,bad,https://shoponline.com,72 +91,yes,https://github.com,41 +99,good,http://mysite.org,91 +39,bad,https://github.com,46 +10,great,http://example.com,82 +72,bad,http://example.com,92 +63,bad,https://videosite.com,14 +33,great,http://example.com,37 +18,great,https://github.com,3 +92,ok,http://example.com,43 +37,excellent,http://mysite.org,92 +31,maybe,https://musicstream.com,24 +34,fine,https://yourblog.net,73 +27,good,http://mysite.org,32 +20,excellent,https://google.com,42 +56,ok,http://example.com,67 +80,fine,https://videosite.com,71 +94,great,http://forum.com,33 +89,no,https://videosite.com,19 +69,no,https://github.com,46 +10,excellent,https://yourblog.net,55 +31,no,https://musicstream.com,47 +76,bad,http://mysite.org,39 +77,excellent,https://yourblog.net,44 +28,maybe,https://google.com,14 +63,ok,http://news.com,69 +98,bad,https://musicstream.com,3 +52,maybe,https://google.com,70 +42,fine,http://mysite.org,90 +45,no,http://forum.com,69 +69,great,https://github.com,67 +41,maybe,http://mysite.org,100 +25,terrible,http://forum.com,55 +88,no,https://videosite.com,50 +27,good,http://example.com,45 +18,excellent,https://videosite.com,22 +52,ok,http://mysite.org,48 +25,bad,https://google.com,58 +42,maybe,https://musicstream.com,55 +17,no,http://forum.com,87 +57,maybe,https://shoponline.com,23 +5,terrible,https://musicstream.com,65 +15,maybe,http://news.com,63 +74,good,https://shoponline.com,45 +60,terrible,http://news.com,91 +37,fine,http://news.com,97 +57,good,https://github.com,6 +28,no,https://yourblog.net,15 +3,excellent,https://musicstream.com,60 +63,bad,https://yourblog.net,94 +10,terrible,http://example.com,31 +93,no,https://google.com,3 +97,yes,https://shoponline.com,30 +40,ok,http://mysite.org,51 +52,great,https://google.com,80 +25,maybe,https://yourblog.net,85 +48,no,https://musicstream.com,43 +39,bad,http://mysite.org,34 +71,no,https://shoponline.com,90 +30,great,https://yourblog.net,64 +28,maybe,https://shoponline.com,84 +82,excellent,http://example.com,27 +15,bad,http://mysite.org,84 +5,good,http://mysite.org,18 +32,good,http://example.com,58 +97,yes,https://google.com,86 +35,bad,https://shoponline.com,30 +4,excellent,https://videosite.com,31 +10,terrible,https://videosite.com,54 +28,terrible,https://musicstream.com,43 +45,excellent,https://musicstream.com,87 +57,great,http://mysite.org,67 +15,excellent,http://forum.com,5 +91,maybe,http://forum.com,78 +29,good,https://shoponline.com,89 +50,ok,http://mysite.org,4 +98,yes,http://example.com,41 +20,no,https://videosite.com,68 +7,terrible,http://mysite.org,57 +59,yes,http://example.com,26 +87,good,https://github.com,77 +89,fine,http://forum.com,88 +37,no,https://github.com,19 +52,maybe,https://videosite.com,65 +43,maybe,http://example.com,54 +17,excellent,http://forum.com,67 +0,yes,http://example.com,6 +46,terrible,http://news.com,40 +92,great,http://news.com,54 +7,great,https://github.com,66 +94,terrible,https://videosite.com,9 +55,no,https://github.com,8 +99,ok,https://videosite.com,50 +69,fine,https://videosite.com,79 +56,no,https://google.com,87 +53,yes,https://videosite.com,15 +15,ok,http://example.com,59 +87,excellent,http://forum.com,63 +99,fine,https://shoponline.com,33 +59,maybe,https://google.com,90 +38,fine,https://videosite.com,67 +73,terrible,https://shoponline.com,52 +81,terrible,https://github.com,1 +65,excellent,http://mysite.org,74 +60,ok,https://musicstream.com,35 +40,excellent,https://yourblog.net,0 +64,no,http://news.com,83 +74,good,http://news.com,45 +93,no,https://google.com,80 +72,terrible,http://mysite.org,16 +28,excellent,http://mysite.org,26 +81,maybe,http://forum.com,20 +5,yes,https://shoponline.com,68 +61,terrible,https://yourblog.net,52 +90,ok,http://mysite.org,26 +97,no,http://mysite.org,6 +44,terrible,https://google.com,83 +49,no,https://github.com,64 +81,great,http://forum.com,30 +67,good,https://videosite.com,93 +66,ok,https://google.com,66 +20,fine,https://yourblog.net,45 +53,excellent,https://musicstream.com,20 +27,terrible,https://github.com,36 +90,yes,https://videosite.com,67 +72,ok,https://shoponline.com,41 +100,no,https://github.com,39 +59,yes,http://mysite.org,43 +98,good,https://musicstream.com,99 +96,bad,http://forum.com,17 +71,great,https://shoponline.com,50 +80,great,http://example.com,19 +30,excellent,https://github.com,85 +70,bad,http://news.com,61 +6,bad,https://shoponline.com,57 +51,yes,https://shoponline.com,51 +63,no,http://example.com,37 +24,great,http://forum.com,0 +10,yes,http://mysite.org,52 +38,maybe,http://mysite.org,41 +79,maybe,http://example.com,61 +99,fine,http://example.com,25 +76,ok,https://musicstream.com,73 +79,no,http://news.com,97 +32,yes,https://github.com,64 +29,fine,https://shoponline.com,98 +34,excellent,http://forum.com,74 +19,fine,http://example.com,37 +11,great,http://mysite.org,57 +48,great,http://mysite.org,70 +29,yes,http://forum.com,52 +69,no,https://shoponline.com,45 +39,no,https://musicstream.com,59 +42,fine,http://forum.com,50 +10,yes,http://forum.com,95 +1,bad,https://yourblog.net,95 +93,terrible,https://musicstream.com,24 +96,ok,http://example.com,70 +75,ok,https://google.com,45 +60,terrible,https://videosite.com,96 +77,excellent,http://mysite.org,69 +30,fine,https://yourblog.net,77 +13,maybe,https://shoponline.com,90 +25,good,https://github.com,41 +59,no,https://videosite.com,32 +43,excellent,https://github.com,12 +32,maybe,https://google.com,17 +94,maybe,https://shoponline.com,29 +5,great,http://example.com,94 +48,great,http://example.com,59 +98,terrible,https://yourblog.net,71 +9,excellent,https://github.com,85 +52,maybe,http://example.com,44 +25,excellent,https://musicstream.com,1 +88,bad,http://mysite.org,3 +83,bad,https://google.com,78 +86,fine,https://google.com,76 +8,maybe,https://yourblog.net,61 +95,great,https://shoponline.com,39 +86,terrible,https://github.com,31 +48,bad,https://videosite.com,36 +14,fine,https://google.com,61 +27,no,http://news.com,97 +96,ok,http://news.com,88 +38,no,https://musicstream.com,38 +86,no,https://shoponline.com,48 +90,excellent,https://yourblog.net,72 +68,maybe,http://example.com,0 +100,good,http://news.com,68 +43,good,https://yourblog.net,12 +83,great,http://mysite.org,64 +84,bad,https://yourblog.net,20 +94,yes,https://github.com,15 +33,excellent,https://musicstream.com,53 +65,bad,http://forum.com,9 +25,yes,http://example.com,30 +8,maybe,https://videosite.com,83 +66,maybe,http://example.com,86 +27,terrible,https://yourblog.net,40 +7,good,http://news.com,29 +21,good,https://google.com,14 +35,maybe,https://videosite.com,45 +46,great,https://videosite.com,38 +18,yes,https://github.com,40 +90,good,https://videosite.com,84 +82,great,http://example.com,20 +5,excellent,http://forum.com,100 +30,terrible,http://example.com,63 +60,no,https://google.com,93 +72,maybe,https://google.com,99 +53,maybe,http://forum.com,52 +87,great,http://forum.com,71 +51,bad,https://shoponline.com,71 +22,good,http://forum.com,89 +87,great,http://forum.com,90 +58,excellent,https://github.com,93 +62,no,https://videosite.com,2 +86,maybe,https://shoponline.com,81 +51,excellent,http://news.com,1 +20,no,http://forum.com,72 +51,no,http://news.com,35 +57,good,https://yourblog.net,41 +71,great,http://news.com,33 +51,fine,https://videosite.com,2 +15,yes,https://musicstream.com,14 +74,yes,http://news.com,64 +41,ok,http://mysite.org,21 +58,fine,https://musicstream.com,29 +0,terrible,http://news.com,77 +94,fine,https://github.com,91 +66,maybe,http://news.com,47 +97,no,http://news.com,18 +25,maybe,https://github.com,26 +26,bad,https://yourblog.net,21 +25,great,https://google.com,33 +17,fine,https://google.com,83 +20,good,http://example.com,40 +3,fine,https://shoponline.com,16 +29,yes,http://news.com,23 +71,excellent,https://github.com,30 +61,ok,https://yourblog.net,24 +14,bad,http://mysite.org,73 +37,ok,http://news.com,52 +92,great,http://news.com,40 +70,bad,https://yourblog.net,29 +39,terrible,https://videosite.com,9 +23,ok,http://example.com,38 +52,excellent,https://yourblog.net,46 +56,ok,https://musicstream.com,76 +83,yes,http://forum.com,96 +1,no,http://news.com,27 +72,excellent,http://mysite.org,12 +75,no,http://forum.com,97 +21,ok,https://yourblog.net,87 +41,yes,http://forum.com,44 +89,excellent,http://mysite.org,40 +46,good,https://google.com,39 +75,terrible,https://shoponline.com,88 +51,terrible,https://shoponline.com,33 +15,terrible,http://mysite.org,20 +93,great,https://yourblog.net,92 +45,excellent,https://musicstream.com,7 +23,excellent,https://google.com,81 +54,no,http://example.com,90 +45,great,https://yourblog.net,33 +67,yes,https://github.com,52 +20,good,https://github.com,44 +39,excellent,https://musicstream.com,60 +20,maybe,https://google.com,20 +16,yes,http://forum.com,19 +52,bad,https://yourblog.net,35 +40,fine,https://google.com,86 +43,ok,https://videosite.com,17 +69,terrible,https://shoponline.com,8 +86,terrible,https://github.com,45 +17,no,https://google.com,29 +53,fine,https://shoponline.com,4 +31,great,https://shoponline.com,5 +51,maybe,https://videosite.com,92 +21,bad,https://videosite.com,0 +96,bad,http://example.com,82 +89,bad,http://forum.com,97 +73,terrible,http://mysite.org,17 +58,bad,https://videosite.com,18 +13,excellent,https://musicstream.com,47 +9,good,https://google.com,3 +46,ok,https://musicstream.com,75 +47,excellent,https://yourblog.net,15 +49,good,https://musicstream.com,16 +47,terrible,https://yourblog.net,60 +63,good,https://musicstream.com,19 +56,good,https://videosite.com,97 +88,great,http://news.com,75 +46,terrible,http://mysite.org,61 +51,ok,https://google.com,90 +67,excellent,http://example.com,56 +4,yes,https://musicstream.com,67 +60,excellent,http://news.com,24 +29,no,https://musicstream.com,38 +37,ok,https://musicstream.com,51 +31,yes,http://mysite.org,66 +4,bad,https://google.com,90 +41,good,http://news.com,64 +19,excellent,https://musicstream.com,19 +79,maybe,https://musicstream.com,56 +100,no,http://news.com,97 +64,yes,https://yourblog.net,8 +45,fine,http://news.com,87 +10,terrible,https://yourblog.net,52 +50,excellent,https://musicstream.com,82 +45,great,http://mysite.org,96 +10,no,https://musicstream.com,0 +28,excellent,http://news.com,77 +100,good,https://shoponline.com,72 +3,fine,http://news.com,68 +87,good,https://shoponline.com,93 +16,ok,http://news.com,65 +41,maybe,http://forum.com,99 +81,maybe,http://mysite.org,33 +1,maybe,http://mysite.org,45 +33,great,https://google.com,64 +73,bad,https://google.com,56 +67,terrible,http://example.com,14 +0,no,https://yourblog.net,8 +25,good,https://google.com,65 +4,ok,http://example.com,74 +89,maybe,https://videosite.com,86 +32,great,http://forum.com,27 +58,no,http://forum.com,91 +64,good,https://github.com,45 +32,bad,https://github.com,92 +31,maybe,http://news.com,12 +70,good,https://yourblog.net,77 +25,bad,https://google.com,8 +25,bad,https://musicstream.com,82 +49,good,http://mysite.org,95 +11,excellent,http://forum.com,39 +28,no,https://yourblog.net,62 +48,maybe,http://example.com,12 +12,excellent,https://shoponline.com,44 +19,excellent,https://shoponline.com,22 +77,yes,https://yourblog.net,94 +24,fine,http://news.com,20 +95,great,http://forum.com,51 +21,maybe,http://example.com,58 +66,no,https://google.com,94 +32,great,https://videosite.com,92 +26,good,https://github.com,54 +52,terrible,https://videosite.com,54 +24,good,http://example.com,89 +67,fine,https://musicstream.com,24 +64,bad,http://news.com,79 +40,bad,https://yourblog.net,76 +2,excellent,https://videosite.com,51 +59,no,http://mysite.org,39 +64,ok,https://yourblog.net,82 +56,ok,http://example.com,75 +82,maybe,https://google.com,87 +14,good,http://news.com,24 +23,yes,http://forum.com,16 +45,great,https://shoponline.com,51 +91,fine,https://google.com,18 +60,bad,https://musicstream.com,64 +33,fine,https://shoponline.com,66 +83,fine,http://mysite.org,40 +7,yes,https://github.com,84 +9,no,https://musicstream.com,90 +51,ok,https://google.com,32 +83,bad,http://example.com,63 +2,terrible,https://videosite.com,2 +76,terrible,https://yourblog.net,43 +6,yes,https://videosite.com,26 +98,great,https://shoponline.com,34 +38,ok,http://example.com,14 +90,fine,http://mysite.org,44 +21,fine,http://forum.com,17 +20,yes,http://mysite.org,11 +47,no,https://shoponline.com,19 +69,bad,https://videosite.com,60 +30,excellent,http://forum.com,48 +43,great,https://yourblog.net,35 +94,yes,https://google.com,54 +97,good,http://forum.com,63 +62,excellent,https://videosite.com,44 +42,ok,https://shoponline.com,14 +11,no,http://example.com,80 +80,no,https://videosite.com,60 +2,excellent,https://musicstream.com,64 +49,maybe,https://videosite.com,18 +48,maybe,http://mysite.org,88 +46,bad,https://musicstream.com,65 +86,excellent,https://yourblog.net,90 +75,ok,https://google.com,54 +81,ok,http://mysite.org,64 +59,good,https://github.com,74 +24,good,http://mysite.org,84 +97,excellent,http://example.com,38 +73,excellent,http://mysite.org,98 +78,bad,http://example.com,57 +37,fine,https://videosite.com,84 +89,maybe,http://news.com,12 +89,bad,https://yourblog.net,36 +63,terrible,http://example.com,5 +91,no,https://videosite.com,68 +52,fine,http://forum.com,26 +34,no,https://shoponline.com,51 +38,no,https://google.com,66 +78,ok,https://shoponline.com,59 +14,great,https://shoponline.com,90 +93,good,http://mysite.org,31 +96,ok,https://shoponline.com,93 +73,maybe,https://shoponline.com,9 +5,ok,https://shoponline.com,37 +73,excellent,http://example.com,49 +32,no,https://github.com,39 +61,bad,http://example.com,62 +20,ok,https://musicstream.com,55 +33,yes,https://shoponline.com,2 +31,terrible,https://google.com,58 +1,bad,http://forum.com,78 +62,great,https://yourblog.net,38 +80,great,http://mysite.org,54 +6,terrible,http://mysite.org,49 +45,yes,https://videosite.com,13 +97,fine,https://shoponline.com,71 +18,no,http://mysite.org,91 +94,bad,https://yourblog.net,52 +4,excellent,http://example.com,92 +95,great,http://forum.com,100 +99,no,https://yourblog.net,36 +13,terrible,https://github.com,55 +36,bad,https://yourblog.net,82 +18,fine,https://videosite.com,7 +43,good,https://github.com,60 +83,excellent,https://google.com,14 +0,fine,https://shoponline.com,34 +66,bad,https://videosite.com,14 +66,no,http://news.com,70 +29,good,http://news.com,65 +83,yes,http://news.com,49 +71,terrible,http://forum.com,85 +52,yes,http://example.com,55 +59,no,http://mysite.org,94 +30,no,http://forum.com,38 +98,good,http://example.com,89 +52,ok,https://yourblog.net,71 +100,bad,http://example.com,73 +43,maybe,https://musicstream.com,56 +56,no,https://yourblog.net,33 +30,yes,http://forum.com,71 +19,maybe,https://google.com,15 +33,ok,http://news.com,69 +84,excellent,https://shoponline.com,6 +75,fine,https://musicstream.com,70 +95,great,https://musicstream.com,16 +5,terrible,https://github.com,90 +90,yes,https://videosite.com,10 +58,excellent,https://yourblog.net,0 +4,bad,https://musicstream.com,30 +54,good,http://example.com,20 +56,excellent,https://videosite.com,48 +65,fine,http://example.com,16 +61,bad,http://example.com,69 +87,maybe,http://forum.com,0 +61,bad,https://github.com,16 +0,maybe,https://google.com,60 +88,terrible,http://mysite.org,24 +17,maybe,https://github.com,81 +61,excellent,https://musicstream.com,39 +84,excellent,https://yourblog.net,30 +51,yes,http://news.com,99 +84,excellent,http://news.com,79 +56,yes,https://videosite.com,51 +23,yes,https://github.com,75 +30,no,https://github.com,92 +81,excellent,https://videosite.com,67 +93,ok,http://example.com,13 +82,good,http://forum.com,75 +100,maybe,http://example.com,37 +52,terrible,https://musicstream.com,26 +90,yes,https://videosite.com,8 +7,yes,http://news.com,5 +35,excellent,https://github.com,90 +16,terrible,http://forum.com,82 +7,terrible,https://github.com,45 +18,great,http://example.com,18 +29,maybe,https://yourblog.net,3 +46,good,http://forum.com,83 +1,maybe,http://example.com,27 +31,fine,https://videosite.com,29 +10,bad,https://musicstream.com,86 +68,no,http://example.com,19 +17,great,http://forum.com,93 +17,good,https://videosite.com,54 +83,bad,https://musicstream.com,51 +89,yes,https://yourblog.net,58 +42,fine,https://github.com,19 +16,yes,https://google.com,93 +72,good,https://videosite.com,53 +56,yes,https://google.com,39 +70,maybe,https://musicstream.com,82 +3,fine,https://shoponline.com,25 +71,great,https://videosite.com,100 +8,yes,http://mysite.org,91 +20,yes,https://videosite.com,88 +40,fine,http://example.com,31 +65,good,http://forum.com,3 +23,yes,http://forum.com,69 +32,ok,http://mysite.org,94 +38,terrible,http://example.com,23 +80,good,https://github.com,63 +28,yes,https://videosite.com,11 +92,bad,http://forum.com,83 +67,maybe,https://musicstream.com,70 +98,maybe,http://forum.com,4 +34,maybe,https://videosite.com,68 +61,great,https://google.com,9 +83,fine,https://yourblog.net,100 +35,bad,https://yourblog.net,65 +16,fine,https://videosite.com,5 +90,yes,http://mysite.org,8 +78,terrible,https://shoponline.com,95 +4,yes,https://google.com,47 +4,good,https://musicstream.com,13 +56,terrible,http://example.com,96 +97,no,http://example.com,95 +77,maybe,http://news.com,15 +88,maybe,https://google.com,60 +0,fine,https://shoponline.com,14 +72,no,https://musicstream.com,69 +61,terrible,http://example.com,31 +24,yes,https://github.com,85 +68,great,http://example.com,97 +50,great,https://videosite.com,19 +6,excellent,https://yourblog.net,91 +81,excellent,https://yourblog.net,98 +22,no,http://mysite.org,45 +67,yes,https://yourblog.net,53 +60,ok,https://yourblog.net,20 +44,good,https://yourblog.net,37 +73,ok,https://github.com,4 +54,good,http://example.com,14 +69,good,https://yourblog.net,39 +59,excellent,http://example.com,15 +53,terrible,https://google.com,29 +56,no,https://musicstream.com,46 +76,ok,https://shoponline.com,64 +2,good,https://musicstream.com,74 +51,excellent,http://forum.com,66 +17,terrible,http://news.com,8 +66,maybe,https://shoponline.com,92 +26,fine,http://mysite.org,51 +45,excellent,http://news.com,50 +92,yes,https://videosite.com,93 +34,terrible,https://google.com,50 +40,yes,https://shoponline.com,73 +50,bad,http://forum.com,10 +38,bad,https://google.com,28 +1,terrible,http://mysite.org,97 +7,fine,https://shoponline.com,18 +36,excellent,https://videosite.com,73 +44,no,https://yourblog.net,10 +60,ok,https://videosite.com,45 +59,ok,https://videosite.com,81 +93,yes,http://news.com,75 +73,no,https://github.com,44 +39,yes,https://musicstream.com,71 +46,excellent,https://musicstream.com,25 +0,maybe,http://mysite.org,82 +65,bad,http://mysite.org,27 +57,no,http://example.com,60 +29,maybe,https://google.com,48 +68,maybe,http://example.com,34 +33,excellent,http://forum.com,70 +12,maybe,https://yourblog.net,63 +83,maybe,http://forum.com,43 +25,yes,https://yourblog.net,74 +58,terrible,https://yourblog.net,79 +31,no,http://example.com,72 +21,great,http://mysite.org,74 +5,no,http://forum.com,41 +44,fine,https://github.com,75 +63,great,https://github.com,72 +9,good,https://github.com,93 +96,maybe,https://yourblog.net,83 +18,yes,http://example.com,14 +13,terrible,https://github.com,80 +30,bad,https://yourblog.net,65 +69,yes,http://news.com,30 +19,yes,http://mysite.org,96 +91,fine,http://example.com,46 +68,maybe,https://github.com,37 +2,terrible,https://yourblog.net,41 +33,ok,https://shoponline.com,39 +54,terrible,http://news.com,60 +60,maybe,http://forum.com,89 +76,great,http://mysite.org,37 +66,bad,https://google.com,16 +63,terrible,https://musicstream.com,60 +44,no,https://yourblog.net,61 +66,great,http://example.com,16 +4,good,https://github.com,67 +17,great,https://shoponline.com,100 +84,good,http://mysite.org,56 +29,maybe,https://musicstream.com,32 +19,fine,https://shoponline.com,51 +36,good,http://mysite.org,77 +37,terrible,http://mysite.org,95 diff --git a/be/test/olap/rowset/segment_v2/inverted_index/index_compaction_with_deleted_term.cpp b/be/test/olap/rowset/segment_v2/inverted_index/index_compaction_with_deleted_term.cpp index 71f289f58cded4..af2e2de4aea1b2 100644 --- a/be/test/olap/rowset/segment_v2/inverted_index/index_compaction_with_deleted_term.cpp +++ b/be/test/olap/rowset/segment_v2/inverted_index/index_compaction_with_deleted_term.cpp @@ -20,20 +20,15 @@ #include #include -#include "CLucene/StdHeader.h" -#include "CLucene/config/repl_wchar.h" +#include "common/exception.h" #include "common/status.h" #include "json2pb/json_to_pb.h" -#include "json2pb/pb_to_json.h" #include "olap/base_compaction.h" #include "olap/rowset/beta_rowset.h" #include "olap/rowset/beta_rowset_writer.h" #include "olap/rowset/rowset_factory.h" -#include "olap/rowset/segment_v2/inverted_index/query/phrase_query.h" -#include "olap/rowset/segment_v2/inverted_index/query/query_factory.h" #include "olap/rowset/segment_v2/inverted_index_compaction.h" -#include "olap/rowset/segment_v2/inverted_index_file_reader.h" -#include "olap/rowset/segment_v2/inverted_index_fs_directory.h" +#include "olap/rowset/segment_v2/inverted_index_compound_directory.h" #include "olap/storage_engine.h" namespace doris { @@ -79,7 +74,7 @@ static std::vector read_data(const std::string file_name) { } static void check_terms_stats(lucene::store::Directory* dir) { - IndexReader* r = IndexReader::open(dir); + lucene::index::IndexReader* r = lucene::index::IndexReader::open(dir); printf("Max Docs: %d\n", r->maxDoc()); printf("Num Docs: %d\n", r->numDocs()); @@ -87,7 +82,7 @@ static void check_terms_stats(lucene::store::Directory* dir) { int64_t ver = r->getCurrentVersion(dir); printf("Current Version: %f\n", (float_t)ver); - TermEnum* te = r->terms(); + lucene::index::TermEnum* te = r->terms(); int32_t nterms; for (nterms = 0; te->next(); nterms++) { /* empty */ @@ -100,7 +95,7 @@ static void check_terms_stats(lucene::store::Directory* dir) { printf("Term: %s ", token.c_str()); printf("Freq: %d\n", te->docFreq()); if (false) { - TermDocs* td = r->termDocs(te->term()); + lucene::index::TermDocs* td = r->termDocs(te->term()); while (td->next()) { printf("DocID: %d ", td->doc()); printf("TermFreq: %d\n", td->freq()); @@ -236,18 +231,18 @@ static RowsetSharedPtr do_compaction(std::vector rowsets, EXPECT_TRUE(compaction.construct_output_rowset_writer(ctx, true).ok()); if (is_index_compaction) { - EXPECT_TRUE(ctx.columns_to_do_index_compaction.size() == 2); + EXPECT_TRUE(ctx.skip_inverted_index.size() == 2); // col v1 - EXPECT_TRUE(ctx.columns_to_do_index_compaction.contains(1)); + EXPECT_TRUE(ctx.skip_inverted_index.contains(1)); // col v2 - EXPECT_TRUE(ctx.columns_to_do_index_compaction.contains(2)); + EXPECT_TRUE(ctx.skip_inverted_index.contains(2)); } Merger::Statistics stats; stats.rowid_conversion = &compaction._rowid_conversion; - Status st = Merger::vertical_merge_rowsets( - tablet, compaction.compaction_type(), compaction._cur_tablet_schema, input_rs_readers, - compaction._output_rs_writer.get(), 100000, 5, &stats); + Status st = Merger::vertical_merge_rowsets(tablet, compaction.compaction_type(), + compaction._cur_tablet_schema, input_rs_readers, + compaction._output_rs_writer.get(), 100000, &stats); EXPECT_TRUE(st.ok()) << st.to_string(); st = compaction._output_rs_writer->build(compaction._output_rowset); @@ -258,7 +253,7 @@ static RowsetSharedPtr do_compaction(std::vector rowsets, // do index compaction if (stats.rowid_conversion && config::inverted_index_compaction_enable && - !ctx.columns_to_do_index_compaction.empty()) { + !ctx.skip_inverted_index.empty()) { OlapStopWatch inverted_watch; // translation vec @@ -277,7 +272,7 @@ static RowsetSharedPtr do_compaction(std::vector rowsets, RowsetId dest_rowset_id = stats.rowid_conversion->get_dst_rowset_id(); // dest segment id -> num rows std::vector dest_segment_num_rows; - Status st = compaction._output_rs_writer->get_segment_num_rows(&dest_segment_num_rows); + auto st = compaction._output_rs_writer->get_segment_num_rows(&dest_segment_num_rows); EXPECT_TRUE(st.ok()) << st.to_string(); auto src_segment_num = src_seg_to_id_map.size(); @@ -301,163 +296,66 @@ static RowsetSharedPtr do_compaction(std::vector rowsets, } // create index_writer to compaction indexes - const auto& fs = compaction._output_rowset->rowset_meta()->fs(); - const auto& tablet_path = tablet->tablet_path(); - - // src index dirs - // format: rowsetId_segmentId - std::vector> inverted_index_file_readers( - src_segment_num); - for (const auto& m : src_seg_to_id_map) { - std::pair p = m.first; - auto segment_file_name = - p.first.to_string() + "_" + std::to_string(p.second) + ".dat"; - auto inverted_index_file_reader = std::make_unique( - fs, tablet_path, segment_file_name, - compaction._cur_tablet_schema->get_inverted_index_storage_format()); - bool open_idx_file_cache = false; - auto st = inverted_index_file_reader->init(config::inverted_index_read_buffer_size, - open_idx_file_cache); - EXPECT_TRUE(st.ok()) << st.to_string(); - inverted_index_file_readers[m.second] = std::move(inverted_index_file_reader); - } - - // dest index files - // format: rowsetId_segmentId - std::vector> inverted_index_file_writers( - dest_segment_num); - - // Some columns have already been indexed - // key: seg_id, value: inverted index file size - std::unordered_map compacted_idx_file_size; - for (int seg_id = 0; seg_id < dest_segment_num; ++seg_id) { - auto prefix = dest_rowset_id.to_string() + "_" + std::to_string(seg_id) + ".dat"; - auto inverted_index_file_reader = std::make_unique( - fs, tablet_path, prefix, - compaction._cur_tablet_schema->get_inverted_index_storage_format()); - bool open_idx_file_cache = false; - st = inverted_index_file_reader->init(config::inverted_index_read_buffer_size, - open_idx_file_cache); - if (st.ok()) { - auto index_not_need_to_compact = - inverted_index_file_reader->get_all_directories(); - EXPECT_TRUE(index_not_need_to_compact.has_value()); - // V1: each index is a separate file - // V2: all indexes are in a single file - if (compaction._cur_tablet_schema->get_inverted_index_storage_format() != - doris::InvertedIndexStorageFormatPB::V1) { - int64_t fsize = 0; - st = fs->file_size(InvertedIndexDescriptor::get_index_file_name(prefix), - &fsize); - EXPECT_TRUE(st.ok()) << st.to_string(); - compacted_idx_file_size[seg_id] = fsize; - } - auto inverted_index_file_writer = std::make_unique( - fs, tablet_path, prefix, - compaction._cur_tablet_schema->get_inverted_index_storage_format()); - st = inverted_index_file_writer->initialize(index_not_need_to_compact.value()); - EXPECT_TRUE(st.ok()) << st.to_string(); - inverted_index_file_writers[seg_id] = std::move(inverted_index_file_writer); - } else if (st.is()) { - auto inverted_index_file_writer = std::make_unique( - fs, tablet_path, prefix, - compaction._cur_tablet_schema->get_inverted_index_storage_format()); - inverted_index_file_writers[seg_id] = std::move(inverted_index_file_writer); - // no index file - compacted_idx_file_size[seg_id] = 0; - } else { - EXPECT_TRUE(st.ok()) << st.to_string(); - } - } + auto& fs = compaction._output_rowset->rowset_meta()->fs(); + auto& tablet_path = tablet->tablet_path(); // we choose the first destination segment name as the temporary index writer path // Used to distinguish between different index compaction - auto index_tmp_path = tablet_path + "/" + dest_rowset_id.to_string() + "_" + "tmp"; - - auto error_handler = [&compaction](int64_t index_id, int64_t column_uniq_id) { - for (auto& rowset : compaction._input_rowsets) { - rowset->set_skip_index_compaction(column_uniq_id); - } - }; - + auto index_writer_path = tablet_path + "/" + dest_index_files[0]; Status status = Status::OK(); - for (auto&& column_uniq_id : ctx.columns_to_do_index_compaction) { - auto col = compaction._cur_tablet_schema->column_by_uid(column_uniq_id); - const auto* index_meta = compaction._cur_tablet_schema->get_inverted_index(col); - - // if index properties are different, index compaction maybe needs to be skipped. - bool is_continue = false; - std::optional> first_properties; - for (const auto& rowset : compaction._input_rowsets) { - const auto* tablet_index = rowset->tablet_schema()->get_inverted_index(col); - const auto& properties = tablet_index->properties(); - if (!first_properties.has_value()) { - first_properties = properties; - } else { - if (properties != first_properties.value()) { - error_handler(index_meta->index_id(), column_uniq_id); + std::for_each( + ctx.skip_inverted_index.cbegin(), ctx.skip_inverted_index.cend(), + [&src_segment_num, &dest_segment_num, &index_writer_path, &src_index_files, + &dest_index_files, &fs, &tablet_path, &trans_vec, &dest_segment_num_rows, + &status, &compaction](int32_t column_uniq_id) { + auto error_handler = [&compaction](int64_t index_id, + int64_t column_uniq_id) { + for (auto& rowset : compaction._input_rowsets) { + rowset->set_skip_index_compaction(column_uniq_id); + } + }; + + auto index_id = + compaction._cur_tablet_schema->get_inverted_index(column_uniq_id) + ->index_id(); + + // if index properties are different, index compaction maybe needs to be skipped. + std::optional> first_properties; + for (const auto& rowset : compaction._input_rowsets) { + const auto* tablet_index = + rowset->tablet_schema()->get_inverted_index(column_uniq_id); + const auto& properties = tablet_index->properties(); + if (!first_properties.has_value()) { + first_properties = properties; + } else { + if (properties != first_properties.value()) { + error_handler(index_id, column_uniq_id); + return; + } + } + } + + try { + Status st = compact_column(index_id, src_segment_num, dest_segment_num, + src_index_files, dest_index_files, fs, + index_writer_path, tablet_path, trans_vec, + dest_segment_num_rows); + if (!st.ok()) { + error_handler(index_id, column_uniq_id); + status = Status::Error( + st.msg()); + } + } catch (CLuceneError& e) { + error_handler(index_id, column_uniq_id); status = Status::Error( - "if index properties are different, index compaction needs to " - "be " - "skipped."); - is_continue = true; - break; + e.what()); } - } - } - if (is_continue) { - continue; - } - - std::vector dest_index_dirs(dest_segment_num); - try { - std::vector> src_idx_dirs(src_segment_num); - for (int src_segment_id = 0; src_segment_id < src_segment_num; - src_segment_id++) { - auto res = inverted_index_file_readers[src_segment_id]->open(index_meta); - EXPECT_TRUE(res.has_value()); - src_idx_dirs[src_segment_id] = std::move(res.value()); - } - for (int dest_segment_id = 0; dest_segment_id < dest_segment_num; - dest_segment_id++) { - auto ret = inverted_index_file_writers[dest_segment_id]->open(index_meta); - // EXPECT_TRUE(res.has_value()); - dest_index_dirs[dest_segment_id] = ret.value(); - } - auto st = compact_column(index_meta->index_id(), src_idx_dirs, dest_index_dirs, - fs, index_tmp_path, trans_vec, dest_segment_num_rows); - if (!st.ok()) { - error_handler(index_meta->index_id(), column_uniq_id); - status = - Status::Error(st.msg()); - } - } catch (CLuceneError& e) { - error_handler(index_meta->index_id(), column_uniq_id); - status = Status::Error(e.what()); - } - } - uint64_t inverted_index_file_size = 0; - for (int seg_id = 0; seg_id < dest_segment_num; ++seg_id) { - auto inverted_index_file_writer = inverted_index_file_writers[seg_id].get(); - if (Status st = inverted_index_file_writer->close(); !st.ok()) { - status = Status::Error(st.msg()); - } else { - inverted_index_file_size += inverted_index_file_writer->get_index_file_size(); - inverted_index_file_size -= compacted_idx_file_size[seg_id]; - } - } - EXPECT_TRUE(status.ok()) << status.to_string(); + }); - // index compaction should update total disk size and index disk size - compaction._output_rowset->rowset_meta()->set_data_disk_size( - compaction._output_rowset->data_disk_size() + inverted_index_file_size); - compaction._output_rowset->rowset_meta()->set_total_disk_size( - compaction._output_rowset->data_disk_size() + inverted_index_file_size); - compaction._output_rowset->rowset_meta()->set_index_disk_size( - compaction._output_rowset->index_disk_size() + inverted_index_file_size); + EXPECT_TRUE(status.ok()) << status.to_string(); - COUNTER_UPDATE(compaction._output_rowset_data_size_counter, - compaction._output_rowset->data_disk_size()); + } else { + EXPECT_TRUE(false) << "should not reach skip doing index compaction"; } } @@ -480,10 +378,6 @@ class IndexCompactionDeleteTest : public ::testing::Test { EXPECT_TRUE(io::global_local_filesystem()->create_directory(tmp_dir).ok()); std::vector paths; paths.emplace_back(std::string(tmp_dir), 1024000000); - auto tmp_file_dirs = std::make_unique(paths); - Status st = tmp_file_dirs->init(); - EXPECT_TRUE(st.ok()) << st.to_json(); - ExecEnv::GetInstance()->set_tmp_file_dir(std::move(tmp_file_dirs)); // storage engine doris::EngineOptions options; @@ -495,7 +389,6 @@ class IndexCompactionDeleteTest : public ::testing::Test { // tablet_schema TabletSchemaPB schema_pb; schema_pb.set_keys_type(KeysType::DUP_KEYS); - schema_pb.set_inverted_index_storage_format(InvertedIndexStorageFormatPB::V1); construct_column(schema_pb.add_column(), schema_pb.add_index(), 10000, "key_index", 0, "INT", "key"); @@ -513,7 +406,7 @@ class IndexCompactionDeleteTest : public ::testing::Test { TabletMetaSharedPtr tablet_meta(new TabletMeta()); tablet_meta->_schema = _tablet_schema; - _tablet.reset(new Tablet(*_engine_ref, tablet_meta, _data_dir.get())); + _tablet.reset(new Tablet(tablet_meta, _data_dir.get())); EXPECT_TRUE(_tablet->init().ok()); } void TearDown() override { @@ -660,29 +553,30 @@ TEST_F(IndexCompactionDeleteTest, delete_index_test) { auto segment_file_name_index = fmt::format("{}_{}.dat", output_rowset_index->rowset_id().to_string(), seg_id); std::cout << "segment_file_name: " << segment_file_name_index << std::endl; - auto inverted_index_file_reader_index = std::make_unique( - output_rowset_index->_rowset_meta->fs(), _tablet->tablet_path(), - segment_file_name_index, _tablet_schema->get_inverted_index_storage_format()); - EXPECT_TRUE(inverted_index_file_reader_index->init().ok()); + auto index_file_name_index = + InvertedIndexDescriptor::get_index_file_name(segment_file_name_index, 10001); + auto inverted_index_file_reader_index = std::make_unique( + DorisCompoundDirectoryFactory::getDirectory(output_rowset_index->_rowset_meta->fs(), + output_rowset_index->tablet_path().c_str()), + index_file_name_index.c_str(), config::inverted_index_read_buffer_size); auto output_rowset_normal = do_compaction(rowsets, _engine_ref, _tablet, false); auto segment_file_name_normal = fmt::format("{}_{}.dat", output_rowset_index->rowset_id().to_string(), seg_id); - auto inverted_index_file_reader_normal = std::make_unique( - output_rowset_normal->_rowset_meta->fs(), _tablet->tablet_path(), - segment_file_name_normal, _tablet_schema->get_inverted_index_storage_format()); - EXPECT_TRUE(inverted_index_file_reader_normal->init().ok()); + auto index_file_name_normal = + InvertedIndexDescriptor::get_index_file_name(segment_file_name_normal, 10001); + auto inverted_index_file_reader_normal = std::make_unique( + DorisCompoundDirectoryFactory::getDirectory( + output_rowset_normal->_rowset_meta->fs(), + output_rowset_normal->tablet_path().c_str()), + index_file_name_normal.c_str(), config::inverted_index_read_buffer_size); // check index file terms - std::string empty_string; - auto dir_idx_compaction = inverted_index_file_reader_index->_open(10001, empty_string); - auto dir_normal_compaction = inverted_index_file_reader_normal->_open(10001, empty_string); - EXPECT_TRUE(dir_idx_compaction.has_value()) << dir_idx_compaction.error(); - EXPECT_TRUE(dir_normal_compaction.has_value()) << dir_normal_compaction.error(); - check_terms_stats(dir_idx_compaction->get()); - check_terms_stats(dir_normal_compaction->get()); - auto st = check_idx_file_correctness(dir_idx_compaction->get(), dir_normal_compaction->get()); + check_terms_stats(inverted_index_file_reader_index.get()); + check_terms_stats(inverted_index_file_reader_normal.get()); + auto st = check_idx_file_correctness(inverted_index_file_reader_index.get(), + inverted_index_file_reader_normal.get()); EXPECT_TRUE(st.ok()) << st.to_string(); }