/** * Try to verify that the right analyzer is used when indexing. * * @throws Exception in case the test fails. */ @Test public void testBySearch() throws Exception { SubClass testClass = new SubClass( 1 ); // See https://en.wikipedia.org/wiki/Dotted_and_dotless_I testClass.setName( "I\u0307stanbul" ); helper.index( testClass ); QueryParser parser = new QueryParser( "name", TestConstants.keywordAnalyzer ); org.apache.lucene.search.Query luceneQuery = parser.parse( "name:istanbul" ); helper.assertThat( luceneQuery ) .from( SubClass.class ) .matchesExactlyIds( 1 ); // make sure the result is not always 1 luceneQuery = parser.parse( "name:foo" ); helper.assertThat( luceneQuery ) .from( SubClass.class ) .matchesNone(); }
@Test @TestForIssue(jiraKey = "HSEARCH-2700") public void testBlankQueryString() { QueryBuilder qb = getCoffeeQueryBuilder(); Query query = qb.simpleQueryString() .onFields( "name", "summary", "description" ) .withAndAsDefaultOperator() .matching( " " ) .createQuery(); helper.assertThat( query ).from( Coffee.class ) .sort( new Sort( new SortField( Coffee.NAME_SORT, Type.STRING ) ) ) .matchesNone(); query = qb.simpleQueryString() .onFields( "name", "summary", "description" ) .withAndAsDefaultOperator() .matching( "() (())" ) .createQuery(); helper.assertThat( query ).from( Coffee.class ) .sort( new Sort( new SortField( Coffee.NAME_SORT, Type.STRING ) ) ) .matchesNone(); }
@Test @TestForIssue(jiraKey = "HSEARCH-2700") public void testEmptyQueryString() { QueryBuilder qb = getCoffeeQueryBuilder(); Query query = qb.simpleQueryString() .onFields( "name", "summary", "description" ) .withAndAsDefaultOperator() .matching( "" ) .createQuery(); helper.assertThat( query ).from( Coffee.class ) .sort( new Sort( new SortField( Coffee.NAME_SORT, Type.STRING ) ) ) .matchesNone(); }
@Test public void shouldNotAnalyzeCustomField() throws Exception { helper.assertThat( "copy_of_subject", "chell" ) .from( getEntityType() ) .matchesNone(); }
@Test public void shouldNotAnalyzeCustomIdField() throws Exception { helper.assertThat( "copy_of_id", "glados" ) .from( getEntityType() ) .matchesNone(); }
@Test public void testRangeQueryAboveExclusive() throws Exception { final QueryBuilder monthQb = helper.queryBuilder( Month.class ); // test the limits, exclusive Query query = monthQb .range() .onField( "estimatedCreation" ) .andField( "justfortest" ) .ignoreFieldBridge().ignoreAnalyzer() .above( february ).excludeLimit() .createQuery(); helper.assertThat( query ).from( Month.class ).matchesNone(); }
@Test public void verifyNullEncoding() { Query query = getQueryBuilder() .keyword() .onField( "age" ) .matching( null ) .createQuery(); Assert.assertTrue( query instanceof NumericRangeQuery ); Assert.assertEquals( "[-7 TO -7]", query.toString( "age" ) ); assertProjection( query, "title" ).matchesNone(); }
@Test // The custom field will use the default analyzer instead of the one defined on the field public void shouldNotBeAbleToFindAnalyzedCustomField() throws Exception { helper.assertThat( "copy_of_result", "HORRIBLE" ) .from( getEntityType() ) .matchesNone(); }