搜索条件
通配符搜索:WildcardQuery 属于通配符搜索,这里不会对搜索的关键字进行分词,如果把荣
耀改成“荣耀全网通”就搜不到数据了。
匹配搜索:matchQuery 会对搜索的关键字进行分词,之后将根据分词进行搜索,只要符合
其中一个分词的记录都能被搜索到。也就是分出的词之间的搜索关系是 或者 的
关系。
复制域搜索: QueryBuilders.multiMatchQuery, TbItem.java 类中;可以通过设置@Field 中的 copyTo 属性来将对应属性的值复制
到一个域中。该域可以不进行映射。复制域可以接收多个属性的值复制到其中;
这样做的好处是:
只要搜索一个域就可以搜索到其它几个域的内容;
也提高了搜索效率,复制域并不是越多越好,它需要复制数据,导致一样的
数据会存在索引库中增大索引量
嵌套域: 搜索:QueryBuilders.nestedQuery用户点击的是 4.0-4.9 英寸;需要检索的域是:显示屏尺寸,搜索的值为:4.0-4.9 英寸
搜索条件拼接 boolQueryBuilder.must()。
搜索方法
builder.withQuery基本搜索 builder.withFilter过滤查询 两个功能相同。
<!-指定 jdk版本 -->
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
编写引导类Application.java
**
* 如果是spring boot工程则必须在启动引导类上添加
* SpringBootApplication 是一个组合注解
* 组合了ComponentScan 会扫描当前包和其子包下的spring 注解
*/
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
/*SpringApplication springApplication = new SpringApplication(Application.class);
springApplication.setBannerMode(Banner.Mode.OFF);
springApplication.run(args);*/
}
}