private CandidateResults getResults( final EntityIndex entityIndex, final SearchEdge searchEdge, final SearchTypes searchTypes, final int expectedSize, final int attempts ) { for ( int i = 0; i < attempts; i++ ) { final CandidateResults candidateResults = entityIndex.search( searchEdge, searchTypes, "select *", 100, 0, false ); if ( candidateResults.size() == expectedSize ) { return candidateResults; } try { Thread.sleep( 10000 ); } catch ( InterruptedException e ) { //swallow } } fail( "Could not find candidates of size " + expectedSize + " after " + attempts + " attempts" ); //we'll never reach this, required for compile return null; } }
private CandidateResults getResults( final EntityIndex EntityIndex, final SearchEdge searchEdge, final SearchTypes searchTypes, final int expectedSize ) { final int attempts = 100; String ql = "select *"; for ( int i = 0; i < attempts; i++ ) { final CandidateResults candidateResults = EntityIndex.search( searchEdge, searchTypes, ql , 100, 0, false ); if ( candidateResults.size() == expectedSize ) { return candidateResults; } try { Thread.sleep( 100 ); } catch ( InterruptedException e ) { //swallow } } fail( "Could not find candidates of size " + expectedSize + "after " + attempts + " attempts" ); //we'll never reach this, required for compile return null; } }
private CandidateResults testQuery( final SearchEdge scope, final SearchTypes searchTypes, final String queryString, final int num ) { StopWatch timer = new StopWatch(); timer.start(); CandidateResults candidateResults = entityIndex.search( scope, searchTypes, queryString, 1000, 0, false ); timer.stop(); assertEquals(num, candidateResults.size()); logger.debug("Query time {}ms", timer.getTime()); return candidateResults; }
if (candidateResults.size() < limit) { subscriber.onCompleted(); return;
Assert.assertEquals("Expect no stale candidates yet", numEntities, crs.size()); app.waitForQueueDrainAndRefreshIndex(); crs = queryCollectionCp("dogs", "dog", "select *"); } while ( crs.size() != numEntities && count++ < 15 ); Assert.assertEquals("Expect candidates without earlier stale entities", numEntities,crs.size());
assertEquals(1, candidateResults.size()); logger.debug("Query time {}ms", timer.getTime());
@Test public void testDeindex() { IndexEdge searchEdge = new IndexEdgeImpl( appId, "fastcars", SearchEdge.NodeType.SOURCE, 1 ); Map entityMap = new HashMap() {{ put( "name", "Ferrari 212 Inter" ); put( "introduced", 1952 ); put( "topspeed", 215 ); }}; Entity entity = EntityIndexMapUtils.fromMap( entityMap ); EntityUtils.setId(entity, new SimpleId( "fastcar" ) ); EntityUtils.setVersion(entity, UUIDGenerator.newTimeUUID() ); entity.setField(new UUIDField(IndexingUtils.ENTITY_ID_FIELDNAME, UUID.randomUUID() ) ); indexProducer.put(entityIndex.createBatch().index( searchEdge, entity ).build()).subscribe(); entityIndex.refreshAsync().toBlocking().first(); CandidateResults candidateResults = entityIndex .search( searchEdge, SearchTypes.fromTypes( entity.getId().getType() ), "name contains 'Ferrari*'", 10, 0, false ); assertEquals( 1, candidateResults.size() ); EntityIndexBatch batch = entityIndex.createBatch(); batch.deindex( searchEdge, entity ); indexProducer.put(batch.build()).subscribe();; entityIndex.refreshAsync().toBlocking().first(); candidateResults = entityIndex .search(searchEdge, SearchTypes.fromTypes( entity.getId().getType() ), "name contains 'Ferrari*'", 10, 0, false ); assertEquals(0, candidateResults.size()); }
SearchTypes.fromTypes( "things" ),"select *",10,0, false ); assertEquals(0,connectionResultsEmpty.size());
SearchTypes.fromTypes( testEntity.getId().getType() ), 1 ); assertEquals( 1, collectionResults.size() ); SearchTypes.fromTypes( testEntity.getId().getType() ), 1 ); assertEquals( 1, connectionResults.size() ); SearchTypes.fromTypes( testEntity.getId().getType() ), 1 ); assertEquals( 1, lastConnectionResults.size() );
assertEquals( 1, notFirstResults.size() ); assertEquals(second.getId(), notFirstResults.get( 0 ).getId() ); assertEquals( 1, notFirstWildCardResults.size() ); assertEquals(second.getId(), notFirstWildCardResults.get( 0 ).getId() ); assertEquals( 1, notFirstContainsResults.size() ); assertEquals(second.getId(), notFirstContainsResults.get( 0 ).getId() ); assertEquals( 1, notSecondUnion.size() ); assertEquals( first.getId(), notSecondUnion.get( 0 ).getId() ); assertEquals( 1, notSecondWildcardUnion.size() ); assertEquals( first.getId(), notSecondWildcardUnion.get( 0 ).getId() ); assertEquals( 1, notSecondContainsUnion.size() ); assertEquals( first.getId(), notSecondContainsUnion.get( 0 ).getId() ); assertEquals( 2, notBothReturnResults.size() ); assertEquals( second.getId(), notBothReturnResults.get( 0).getId() ); assertEquals( first.getId(), notBothReturnResults.get( 1 ).getId() ); assertEquals( 0, filterBoth.size() ); assertEquals( 0, noMatchesAndResults.size() ); assertEquals( 0, noMatchesContainsAndResults.size() ); assertEquals( 0, noMatchesOrResults.size() );
@Test public void queryByStringWildCardSpaces() throws Throwable { Id appId = new SimpleId( "application" ); Id ownerId = new SimpleId( "owner" ); IndexEdge indexSCope = new IndexEdgeImpl( ownerId, "user", SearchEdge.NodeType.SOURCE, 10 ); Map entityMap = new HashMap() {{ put( "string", "I am a search string" ); }}; Entity user = EntityIndexMapUtils.fromMap( entityMap ); final Id entityId = new SimpleId( "entitytype" ); EntityUtils.setId( user, entityId ); EntityUtils.setVersion( user, UUIDGenerator.newTimeUUID() ); EntityIndexBatch batch = entityIndex.createBatch(); batch.index(indexSCope, user); indexProducer.put(batch.build()).subscribe();; entityIndex.refreshAsync().toBlocking().first(); final String query = "where string = 'I am*'"; final CandidateResults r = entityIndex.search( indexSCope, SearchTypes.fromTypes( entityId.getType() ), query, 10, 0, false); assertEquals(user.getId(), r.get(0).getId()); //shouldn't match final String queryNoWildCard = "where string = 'I am'"; final CandidateResults noWildCardResults = entityIndex.search( indexSCope, SearchTypes.fromTypes( entityId.getType() ), queryNoWildCard, 10, 0, false ); assertEquals( 0, noWildCardResults.size() ); }
assertEquals( 1, notFirstResults.size() ); assertEquals(second.getId(), notFirstResults.get( 0 ).getId() ); assertEquals( 1, notSecondUnion.size() ); assertEquals( first.getId(), notSecondUnion.get( 0 ).getId() ); assertEquals( 2, notBothReturnResults.size() ); assertEquals( second.getId(), notBothReturnResults.get( 0).getId() ); assertEquals( first.getId(), notBothReturnResults.get( 1 ).getId() ); assertEquals( 0, filterBoth.size() ); assertEquals( 2, noMatchesAndResults.size() ); assertEquals( second.getId(), noMatchesAndResults.get( 0).getId() ); assertEquals( first.getId(), noMatchesAndResults.get( 1 ).getId() ); assertEquals( 2, noMatchesOrResults.size() ); assertEquals( second.getId(), noMatchesOrResults.get( 0).getId() ); assertEquals( first.getId(), noMatchesOrResults.get( 1 ).getId() );
assertEquals(1, singleResults.size()); assertEquals(first.getId(), singleResults.get(0).getId()); assertEquals( 2, singleKeywordUnion.size() ); assertEquals( second.getId(), singleKeywordUnion.get( 0).getId() ); assertEquals( first.getId(), singleKeywordUnion.get( 1 ).getId() ); assertEquals( 2, towMatchResults.size() ); assertEquals(second.getId(), towMatchResults.get( 0).getId() ); assertEquals(first.getId(), towMatchResults.get( 1 ).getId() );
assertEquals( 2, candidateResults.size() ); logger.debug( "Query time {}ms", timer.getTime() );