cleanup
This commit is contained in:
parent
c76666a9b3
commit
b67ecea631
|
@ -0,0 +1,31 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<classpath>
|
||||||
|
<classpathentry kind="src" output="target/classes" path="src/main/java">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="optional" value="true"/>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="optional" value="true"/>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="output" path="target/classes"/>
|
||||||
|
</classpath>
|
|
@ -0,0 +1,29 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>spring-data-elasticsearch</name>
|
||||||
|
<comment></comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.m2e.core.maven2Builder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.springframework.ide.eclipse.core.springbuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
<nature>org.springframework.ide.eclipse.core.springnature</nature>
|
||||||
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
|
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||||
|
</natures>
|
||||||
|
</projectDescription>
|
|
@ -19,7 +19,7 @@ import java.nio.file.Paths;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@EnableElasticsearchRepositories(basePackages = "com.baeldung.spring.data.es.repository")
|
@EnableElasticsearchRepositories(basePackages = "com.baeldung.spring.data.es.repository")
|
||||||
@ComponentScan(basePackages = {"com.baeldung.spring.data.es.service"})
|
@ComponentScan(basePackages = { "com.baeldung.spring.data.es.service" })
|
||||||
public class Config {
|
public class Config {
|
||||||
|
|
||||||
private static Logger logger = LoggerFactory.getLogger(Config.class);
|
private static Logger logger = LoggerFactory.getLogger(Config.class);
|
||||||
|
@ -29,17 +29,11 @@ public class Config {
|
||||||
try {
|
try {
|
||||||
Path tmpDir = Files.createTempDirectory(Paths.get(System.getProperty("java.io.tmpdir")), "elasticsearch_data");
|
Path tmpDir = Files.createTempDirectory(Paths.get(System.getProperty("java.io.tmpdir")), "elasticsearch_data");
|
||||||
|
|
||||||
ImmutableSettings.Builder elasticsearchSettings = ImmutableSettings.settingsBuilder()
|
ImmutableSettings.Builder elasticsearchSettings = ImmutableSettings.settingsBuilder().put("http.enabled", "false").put("path.data", tmpDir.toAbsolutePath().toString());
|
||||||
.put("http.enabled", "false")
|
|
||||||
.put("path.data", tmpDir.toAbsolutePath().toString());
|
|
||||||
|
|
||||||
logger.debug(tmpDir.toAbsolutePath().toString());
|
logger.debug(tmpDir.toAbsolutePath().toString());
|
||||||
|
|
||||||
return new NodeBuilder()
|
return new NodeBuilder().local(true).settings(elasticsearchSettings.build()).node().client();
|
||||||
.local(true)
|
|
||||||
.settings(elasticsearchSettings.build())
|
|
||||||
.node()
|
|
||||||
.client();
|
|
||||||
} catch (IOException ioex) {
|
} catch (IOException ioex) {
|
||||||
logger.error("Cannot create temp dir", ioex);
|
logger.error("Cannot create temp dir", ioex);
|
||||||
throw new RuntimeException();
|
throw new RuntimeException();
|
||||||
|
|
|
@ -16,12 +16,7 @@ public class Article {
|
||||||
@Id
|
@Id
|
||||||
private String id;
|
private String id;
|
||||||
|
|
||||||
@MultiField(
|
@MultiField(mainField = @Field(type = String), otherFields = { @NestedField(index = not_analyzed, dotSuffix = "verbatim", type = String) })
|
||||||
mainField = @Field(type = String),
|
|
||||||
otherFields = {
|
|
||||||
@NestedField(index = not_analyzed, dotSuffix = "verbatim", type = String)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
private String title;
|
private String title;
|
||||||
|
|
||||||
@Field(type = Nested)
|
@Field(type = Nested)
|
||||||
|
@ -71,11 +66,6 @@ public class Article {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "Article{" +
|
return "Article{" + "id='" + id + '\'' + ", title='" + title + '\'' + ", authors=" + authors + ", tags=" + Arrays.toString(tags) + '}';
|
||||||
"id='" + id + '\'' +
|
|
||||||
", title='" + title + '\'' +
|
|
||||||
", authors=" + authors +
|
|
||||||
", tags=" + Arrays.toString(tags) +
|
|
||||||
'}';
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,8 +21,6 @@ public class Author {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "Author{" +
|
return "Author{" + "name='" + name + '\'' + '}';
|
||||||
"name='" + name + '\'' +
|
|
||||||
'}';
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,10 +6,16 @@ import org.springframework.data.domain.Pageable;
|
||||||
|
|
||||||
public interface ArticleService {
|
public interface ArticleService {
|
||||||
Article save(Article article);
|
Article save(Article article);
|
||||||
|
|
||||||
Article findOne(String id);
|
Article findOne(String id);
|
||||||
|
|
||||||
Iterable<Article> findAll();
|
Iterable<Article> findAll();
|
||||||
|
|
||||||
Page<Article> findByAuthorName(String name, Pageable pageable);
|
Page<Article> findByAuthorName(String name, Pageable pageable);
|
||||||
|
|
||||||
Page<Article> findByAuthorNameUsingCustomQuery(String name, Pageable pageable);
|
Page<Article> findByAuthorNameUsingCustomQuery(String name, Pageable pageable);
|
||||||
|
|
||||||
long count();
|
long count();
|
||||||
|
|
||||||
void delete(Article article);
|
void delete(Article article);
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,6 +49,6 @@ public class ArticleServiceImpl implements ArticleService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void delete(Article article) {
|
public void delete(Article article) {
|
||||||
articleRepository.delete(article);
|
articleRepository.delete(article);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,7 @@ import static org.elasticsearch.index.query.QueryBuilders.*;
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
@RunWith(SpringJUnit4ClassRunner.class)
|
@RunWith(SpringJUnit4ClassRunner.class)
|
||||||
@ContextConfiguration(classes = {Config.class}, loader = AnnotationConfigContextLoader.class)
|
@ContextConfiguration(classes = { Config.class }, loader = AnnotationConfigContextLoader.class)
|
||||||
public class ElasticSearchQueryTest {
|
public class ElasticSearchQueryTest {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
@ -85,56 +85,40 @@ public class ElasticSearchQueryTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenFullTitle_whenRunMatchQuery_thenDocIsFound() {
|
public void givenFullTitle_whenRunMatchQuery_thenDocIsFound() {
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder()
|
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchQuery("title", "Search engines").operator(AND)).build();
|
||||||
.withQuery(matchQuery("title", "Search engines").operator(AND))
|
List<Article> articles = elasticsearchTemplate.queryForList(searchQuery, Article.class);
|
||||||
.build();
|
|
||||||
List<Article> articles = elasticsearchTemplate
|
|
||||||
.queryForList(searchQuery, Article.class);
|
|
||||||
assertEquals(1, articles.size());
|
assertEquals(1, articles.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenOneTermFromTitle_whenRunMatchQuery_thenDocIsFound() {
|
public void givenOneTermFromTitle_whenRunMatchQuery_thenDocIsFound() {
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder()
|
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchQuery("title", "Engines Solutions")).build();
|
||||||
.withQuery(matchQuery("title", "Engines Solutions"))
|
List<Article> articles = elasticsearchTemplate.queryForList(searchQuery, Article.class);
|
||||||
.build();
|
|
||||||
List<Article> articles = elasticsearchTemplate
|
|
||||||
.queryForList(searchQuery, Article.class);
|
|
||||||
assertEquals(1, articles.size());
|
assertEquals(1, articles.size());
|
||||||
assertEquals("Search engines", articles.get(0).getTitle());
|
assertEquals("Search engines", articles.get(0).getTitle());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenPartTitle_whenRunMatchQuery_thenDocIsFound() {
|
public void givenPartTitle_whenRunMatchQuery_thenDocIsFound() {
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder()
|
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchQuery("title", "elasticsearch data")).build();
|
||||||
.withQuery(matchQuery("title", "elasticsearch data"))
|
List<Article> articles = elasticsearchTemplate.queryForList(searchQuery, Article.class);
|
||||||
.build();
|
|
||||||
List<Article> articles = elasticsearchTemplate
|
|
||||||
.queryForList(searchQuery, Article.class);
|
|
||||||
assertEquals(3, articles.size());
|
assertEquals(3, articles.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenFullTitle_whenRunMatchQueryOnVerbatimField_thenDocIsFound() {
|
public void givenFullTitle_whenRunMatchQueryOnVerbatimField_thenDocIsFound() {
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder()
|
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchQuery("title.verbatim", "Second Article About Elasticsearch")).build();
|
||||||
.withQuery(matchQuery("title.verbatim", "Second Article About Elasticsearch"))
|
List<Article> articles = elasticsearchTemplate.queryForList(searchQuery, Article.class);
|
||||||
.build();
|
|
||||||
List<Article> articles = elasticsearchTemplate
|
|
||||||
.queryForList(searchQuery, Article.class);
|
|
||||||
assertEquals(1, articles.size());
|
assertEquals(1, articles.size());
|
||||||
|
|
||||||
searchQuery = new NativeSearchQueryBuilder()
|
searchQuery = new NativeSearchQueryBuilder().withQuery(matchQuery("title.verbatim", "Second Article About")).build();
|
||||||
.withQuery(matchQuery("title.verbatim", "Second Article About"))
|
articles = elasticsearchTemplate.queryForList(searchQuery, Article.class);
|
||||||
.build();
|
|
||||||
articles = elasticsearchTemplate
|
|
||||||
.queryForList(searchQuery, Article.class);
|
|
||||||
assertEquals(0, articles.size());
|
assertEquals(0, articles.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenNestedObject_whenQueryByAuthorsName_thenFoundArticlesByThatAuthor() {
|
public void givenNestedObject_whenQueryByAuthorsName_thenFoundArticlesByThatAuthor() {
|
||||||
QueryBuilder builder = nestedQuery("authors",
|
QueryBuilder builder = nestedQuery("authors", boolQuery().must(termQuery("authors.name", "smith")));
|
||||||
boolQuery().must(termQuery("authors.name", "smith")));
|
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(builder).build();
|
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(builder).build();
|
||||||
List<Article> articles = elasticsearchTemplate.queryForList(searchQuery, Article.class);
|
List<Article> articles = elasticsearchTemplate.queryForList(searchQuery, Article.class);
|
||||||
|
@ -145,24 +129,20 @@ public class ElasticSearchQueryTest {
|
||||||
@Test
|
@Test
|
||||||
public void givenAnalyzedQuery_whenMakeAggregationOnTermCount_thenEachTokenCountsSeparately() {
|
public void givenAnalyzedQuery_whenMakeAggregationOnTermCount_thenEachTokenCountsSeparately() {
|
||||||
TermsBuilder aggregation = AggregationBuilders.terms("top_tags").field("title");
|
TermsBuilder aggregation = AggregationBuilders.terms("top_tags").field("title");
|
||||||
SearchResponse response = client.prepareSearch("blog").setTypes("article")
|
SearchResponse response = client.prepareSearch("blog").setTypes("article").addAggregation(aggregation).execute().actionGet();
|
||||||
.addAggregation(aggregation).execute().actionGet();
|
|
||||||
|
|
||||||
Map<String, Aggregation> results = response.getAggregations().asMap();
|
Map<String, Aggregation> results = response.getAggregations().asMap();
|
||||||
StringTerms topTags = (StringTerms) results.get("top_tags");
|
StringTerms topTags = (StringTerms) results.get("top_tags");
|
||||||
|
|
||||||
List<String> keys = topTags.getBuckets().stream().map(b -> b.getKey()).collect(toList());
|
List<String> keys = topTags.getBuckets().stream().map(b -> b.getKey()).collect(toList());
|
||||||
Collections.sort(keys);
|
Collections.sort(keys);
|
||||||
assertEquals(asList("about", "article", "data", "elasticsearch",
|
assertEquals(asList("about", "article", "data", "elasticsearch", "engines", "search", "second", "spring", "tutorial"), keys);
|
||||||
"engines", "search", "second", "spring", "tutorial"), keys);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenNotAnalyzedQuery_whenMakeAggregationOnTermCount_thenEachTermCountsIndividually() {
|
public void givenNotAnalyzedQuery_whenMakeAggregationOnTermCount_thenEachTermCountsIndividually() {
|
||||||
TermsBuilder aggregation = AggregationBuilders.terms("top_tags").field("tags")
|
TermsBuilder aggregation = AggregationBuilders.terms("top_tags").field("tags").order(Terms.Order.aggregation("_count", false));
|
||||||
.order(Terms.Order.aggregation("_count", false));
|
SearchResponse response = client.prepareSearch("blog").setTypes("article").addAggregation(aggregation).execute().actionGet();
|
||||||
SearchResponse response = client.prepareSearch("blog").setTypes("article")
|
|
||||||
.addAggregation(aggregation).execute().actionGet();
|
|
||||||
|
|
||||||
Map<String, Aggregation> results = response.getAggregations().asMap();
|
Map<String, Aggregation> results = response.getAggregations().asMap();
|
||||||
StringTerms topTags = (StringTerms) results.get("top_tags");
|
StringTerms topTags = (StringTerms) results.get("top_tags");
|
||||||
|
@ -173,39 +153,24 @@ public class ElasticSearchQueryTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenNotExactPhrase_whenUseSlop_thenQueryMatches() {
|
public void givenNotExactPhrase_whenUseSlop_thenQueryMatches() {
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder()
|
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchPhraseQuery("title", "spring elasticsearch").slop(1)).build();
|
||||||
.withQuery(matchPhraseQuery("title", "spring elasticsearch").slop(1))
|
List<Article> articles = elasticsearchTemplate.queryForList(searchQuery, Article.class);
|
||||||
.build();
|
|
||||||
List<Article> articles = elasticsearchTemplate
|
|
||||||
.queryForList(searchQuery, Article.class);
|
|
||||||
assertEquals(1, articles.size());
|
assertEquals(1, articles.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenPhraseWithType_whenUseFuzziness_thenQueryMatches() {
|
public void givenPhraseWithType_whenUseFuzziness_thenQueryMatches() {
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder()
|
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchQuery("title", "spring date elasticserch").operator(AND).fuzziness(Fuzziness.ONE).prefixLength(3)).build();
|
||||||
.withQuery(matchQuery("title", "spring date elasticserch")
|
|
||||||
.operator(AND)
|
|
||||||
.fuzziness(Fuzziness.ONE)
|
|
||||||
.prefixLength(3))
|
|
||||||
.build();
|
|
||||||
|
|
||||||
List<Article> articles = elasticsearchTemplate
|
List<Article> articles = elasticsearchTemplate.queryForList(searchQuery, Article.class);
|
||||||
.queryForList(searchQuery, Article.class);
|
|
||||||
assertEquals(1, articles.size());
|
assertEquals(1, articles.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenMultimatchQuery_whenDoSearch_thenAllProvidedFieldsMatch() {
|
public void givenMultimatchQuery_whenDoSearch_thenAllProvidedFieldsMatch() {
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder()
|
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(multiMatchQuery("tutorial").field("title").field("tags").type(MultiMatchQueryBuilder.Type.BEST_FIELDS)).build();
|
||||||
.withQuery(multiMatchQuery("tutorial")
|
|
||||||
.field("title")
|
|
||||||
.field("tags")
|
|
||||||
.type(MultiMatchQueryBuilder.Type.BEST_FIELDS))
|
|
||||||
.build();
|
|
||||||
|
|
||||||
List<Article> articles = elasticsearchTemplate
|
List<Article> articles = elasticsearchTemplate.queryForList(searchQuery, Article.class);
|
||||||
.queryForList(searchQuery, Article.class);
|
|
||||||
assertEquals(2, articles.size());
|
assertEquals(2, articles.size());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,7 @@ import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
|
||||||
@RunWith(SpringJUnit4ClassRunner.class)
|
@RunWith(SpringJUnit4ClassRunner.class)
|
||||||
@ContextConfiguration(classes = {Config.class}, loader = AnnotationConfigContextLoader.class)
|
@ContextConfiguration(classes = { Config.class }, loader = AnnotationConfigContextLoader.class)
|
||||||
public class ElasticSearchTest {
|
public class ElasticSearchTest {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
@ -59,8 +59,7 @@ public class ElasticSearchTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenArticleService_whenSaveArticle_thenIdIsAssigned() {
|
public void givenArticleService_whenSaveArticle_thenIdIsAssigned() {
|
||||||
List<Author> authors = asList(
|
List<Author> authors = asList(new Author("John Smith"), johnDoe);
|
||||||
new Author("John Smith"), johnDoe);
|
|
||||||
|
|
||||||
Article article = new Article("Making Search Elastic");
|
Article article = new Article("Making Search Elastic");
|
||||||
article.setAuthors(authors);
|
article.setAuthors(authors);
|
||||||
|
@ -83,13 +82,10 @@ public class ElasticSearchTest {
|
||||||
assertEquals(3L, articleByAuthorName.getTotalElements());
|
assertEquals(3L, articleByAuthorName.getTotalElements());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenPersistedArticles_whenUseRegexQuery_thenRightArticlesFound() {
|
public void givenPersistedArticles_whenUseRegexQuery_thenRightArticlesFound() {
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder()
|
SearchQuery searchQuery = new NativeSearchQueryBuilder().withFilter(regexpFilter("title", ".*data.*")).build();
|
||||||
.withFilter(regexpFilter("title", ".*data.*"))
|
|
||||||
.build();
|
|
||||||
List<Article> articles = elasticsearchTemplate.queryForList(searchQuery, Article.class);
|
List<Article> articles = elasticsearchTemplate.queryForList(searchQuery, Article.class);
|
||||||
|
|
||||||
assertEquals(1, articles.size());
|
assertEquals(1, articles.size());
|
||||||
|
@ -97,9 +93,7 @@ public class ElasticSearchTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenSavedDoc_whenTitleUpdated_thenCouldFindByUpdatedTitle() {
|
public void givenSavedDoc_whenTitleUpdated_thenCouldFindByUpdatedTitle() {
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder()
|
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(fuzzyQuery("title", "serch")).build();
|
||||||
.withQuery(fuzzyQuery("title", "serch"))
|
|
||||||
.build();
|
|
||||||
List<Article> articles = elasticsearchTemplate.queryForList(searchQuery, Article.class);
|
List<Article> articles = elasticsearchTemplate.queryForList(searchQuery, Article.class);
|
||||||
|
|
||||||
assertEquals(1, articles.size());
|
assertEquals(1, articles.size());
|
||||||
|
@ -117,9 +111,7 @@ public class ElasticSearchTest {
|
||||||
|
|
||||||
final String articleTitle = "Spring Data Elasticsearch";
|
final String articleTitle = "Spring Data Elasticsearch";
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder()
|
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchQuery("title", articleTitle).minimumShouldMatch("75%")).build();
|
||||||
.withQuery(matchQuery("title", articleTitle).minimumShouldMatch("75%"))
|
|
||||||
.build();
|
|
||||||
List<Article> articles = elasticsearchTemplate.queryForList(searchQuery, Article.class);
|
List<Article> articles = elasticsearchTemplate.queryForList(searchQuery, Article.class);
|
||||||
assertEquals(1, articles.size());
|
assertEquals(1, articles.size());
|
||||||
final long count = articleService.count();
|
final long count = articleService.count();
|
||||||
|
@ -131,9 +123,7 @@ public class ElasticSearchTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenSavedDoc_whenOneTermMatches_thenFindByTitle() {
|
public void givenSavedDoc_whenOneTermMatches_thenFindByTitle() {
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder()
|
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchQuery("title", "Search engines").operator(AND)).build();
|
||||||
.withQuery(matchQuery("title", "Search engines").operator(AND))
|
|
||||||
.build();
|
|
||||||
List<Article> articles = elasticsearchTemplate.queryForList(searchQuery, Article.class);
|
List<Article> articles = elasticsearchTemplate.queryForList(searchQuery, Article.class);
|
||||||
assertEquals(1, articles.size());
|
assertEquals(1, articles.size());
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue