77
88package org .elasticsearch .xpack .logsdb .patternedtext ;
99
10- import org .elasticsearch .ResourceNotFoundException ;
11- import org .elasticsearch .action .ActionType ;
1210import org .elasticsearch .action .DocWriteRequest ;
1311import org .elasticsearch .action .admin .indices .create .CreateIndexRequest ;
14- import org .elasticsearch .action .admin .indices .create .CreateIndexResponse ;
1512import org .elasticsearch .action .admin .indices .refresh .RefreshRequest ;
1613import org .elasticsearch .action .bulk .BulkRequest ;
1714import org .elasticsearch .action .bulk .BulkResponse ;
1815import org .elasticsearch .action .index .IndexRequest ;
19- import org .elasticsearch .action .search .SearchRequest ;
20- import org .elasticsearch .action .search .SearchRequestBuilder ;
21- import org .elasticsearch .action .search .SearchResponse ;
2216import org .elasticsearch .action .support .IndicesOptions ;
23- import org .elasticsearch .action .support .master .AcknowledgedResponse ;
2417import org .elasticsearch .common .settings .Settings ;
2518import org .elasticsearch .common .time .DateFormatter ;
26- import org .elasticsearch .common .util .CollectionUtils ;
27- import org .elasticsearch .core .Tuple ;
28- import org .elasticsearch .datageneration .queries .LeafQueryGenerator ;
29- import org .elasticsearch .datastreams .DataStreamsPlugin ;
30- import org .elasticsearch .index .IndexMode ;
31- import org .elasticsearch .index .IndexSettings ;
32- import org .elasticsearch .index .mapper .DateFieldMapper ;
3319import org .elasticsearch .index .mapper .extras .MapperExtrasPlugin ;
34- import org .elasticsearch .index .query .MatchQueryBuilder ;
3520import org .elasticsearch .index .query .QueryBuilder ;
3621import org .elasticsearch .index .query .QueryBuilders ;
3722import org .elasticsearch .license .LicenseSettings ;
3823import org .elasticsearch .plugins .Plugin ;
3924import org .elasticsearch .search .SearchHit ;
4025import org .elasticsearch .test .ESIntegTestCase ;
4126import org .elasticsearch .test .ESTestCase ;
42- import org .elasticsearch .test .InternalSettingsPlugin ;
43- import org .elasticsearch .test .hamcrest .ElasticsearchAssertions ;
44- import org .elasticsearch .test .transport .MockTransportService ;
45- import org .elasticsearch .xcontent .XContentBuilder ;
4627import org .elasticsearch .xcontent .XContentFactory ;
47- import org .elasticsearch .xcontent .XContentType ;
4828import org .elasticsearch .xcontent .json .JsonXContent ;
4929import org .elasticsearch .xpack .core .LocalStateCompositeXPackPlugin ;
50- import org .elasticsearch .xpack .core .XPackPlugin ;
51- import org .elasticsearch .xpack .core .security .action .apikey .CreateApiKeyAction ;
5230import org .elasticsearch .xpack .logsdb .LogsDBPlugin ;
5331import org .junit .Before ;
5432
6038import java .util .concurrent .TimeUnit ;
6139import java .util .stream .Collectors ;
6240
63- import static org .elasticsearch .test .hamcrest .ElasticsearchAssertions .assertNoFailures ;
41+ import static org .elasticsearch .test .hamcrest .ElasticsearchAssertions .assertNoFailuresAndResponse ;
42+
6443
6544public class PatternedTextRandomTests extends ESIntegTestCase {
6645
6746 @ Override
6847 protected Settings nodeSettings (int nodeOrdinal , Settings otherSettings ) {
6948 return Settings .builder ()
7049 .put (super .nodeSettings (nodeOrdinal , otherSettings ))
71- // .put("xpack.license.self_generated.type", "trial")
72- // .put("cluster.logsdb.enabled", "true")
7350 .put (LicenseSettings .SELF_GENERATED_LICENSE_TYPE .getKey (), "trial" )
7451 .build ();
7552 }
7653
77-
78-
7954 @ Override
8055 protected Collection <Class <? extends Plugin >> nodePlugins () {
81- // return Arrays.asList(LocalStateCompositeXPackPlugin.class);
8256 return Arrays .asList (MapperExtrasPlugin .class , LogsDBPlugin .class , LocalStateCompositeXPackPlugin .class );
83- // return CollectionUtils.appendToCopy(super.nodePlugins(), LogsDBPlugin.class, LocalStateCompositeXPackPlugin.class);
84- // return List.of(InternalSettingsPlugin.class, XPackPlugin.class, LogsDBPlugin.class, DataStreamsPlugin.class);
8557 }
8658
8759 private static final String INDEX = "test_index" ;
@@ -93,9 +65,8 @@ public void setup() {
9365 assumeTrue ("Only when patterned_text feature flag is enabled" , PatternedTextFieldMapper .PATTERNED_TEXT_MAPPER .isEnabled ());
9466 }
9567
96- public void test () throws IOException {
68+ public void testQueries () throws IOException {
9769 var settings = Settings .builder ();
98- // var settings = Settings.builder().put(IndexSettings.MODE.getKey(), IndexMode.LOGSDB.getName());
9970 var mappings = XContentFactory .jsonBuilder ()
10071 .startObject ()
10172 .startObject ("properties" )
@@ -118,10 +89,12 @@ public void test() throws IOException {
11889 var createResponse = safeGet (admin ().indices ().create (createRequest ));
11990 assertTrue (createResponse .isAcknowledged ());
12091
121- int numDocs = randomIntBetween (1 , 300 );
92+ int numDocs = randomIntBetween (10 , 1000 );
12293 List <String > logMessages = generateMessages (numDocs );
12394 indexDocs (logMessages );
12495
96+ int [] numQueriesWithResults = {0 };
97+ int [] totalQueries = {0 };
12598 for (var message : logMessages ) {
12699 List <String > queryTerms = randomQueryParts (message );
127100
@@ -132,24 +105,24 @@ public void test() throws IOException {
132105 var ptQuery = patternedTextQueries .get (i );
133106 var motQuery = matchOnlyQueries .get (i );
134107
135- var ptResponse = client ().prepareSearch (INDEX ).setQuery (ptQuery ).setSize (numDocs ).get ();
136- var motResponse = client ().prepareSearch (INDEX ).setQuery (motQuery ).setSize (numDocs ).get ();
137-
138- assertNoFailures (ptResponse );
139- assertNoFailures (motResponse );
140-
141- // assertTrue(motResponse.getHits().getTotalHits().value() > 0);
142- assertEquals (
143- motResponse .getHits ().getTotalHits ().value (),
144- ptResponse .getHits ().getTotalHits ().value ()
145- );
146-
147- var motDocIds = Arrays .stream (motResponse .getHits ().getHits ()).map (SearchHit ::getId ).collect (Collectors .toSet ());
148- var ptDocIds = Arrays .stream (ptResponse .getHits ().getHits ()).map (SearchHit ::getId ).collect (Collectors .toSet ());
149-
150- assertEquals (motDocIds , ptDocIds );
108+ var ptRequest = client ().prepareSearch (INDEX ).setQuery (ptQuery ).setSize (numDocs );
109+ var motRequest = client ().prepareSearch (INDEX ).setQuery (motQuery ).setSize (numDocs );
110+ totalQueries [0 ]++;
111+ assertNoFailuresAndResponse (ptRequest , ptResponse -> {
112+ assertNoFailuresAndResponse (motRequest , motResponse -> {
113+ assertEquals (motResponse .getHits ().getTotalHits ().value (), ptResponse .getHits ().getTotalHits ().value ());
114+
115+ if (motResponse .getHits ().getTotalHits ().value () > 0 ) {
116+ numQueriesWithResults [0 ]++;
117+ }
118+ var motDocIds = Arrays .stream (motResponse .getHits ().getHits ()).map (SearchHit ::getId ).collect (Collectors .toSet ());
119+ var ptDocIds = Arrays .stream (ptResponse .getHits ().getHits ()).map (SearchHit ::getId ).collect (Collectors .toSet ());
120+ assertEquals (motDocIds , ptDocIds );
121+ });
122+ });
151123 }
152124 }
125+ System .out .println ("num queries with results: " + numQueriesWithResults [0 ] + ", total: " + totalQueries [0 ]);
153126 }
154127
155128 public List <QueryBuilder > generateQueries (String field , List <String > queryTerms ) {
0 commit comments