|
@@ -421,25 +421,46 @@ public class EsPatentService {
|
|
|
//设置查询索引
|
|
|
builder.index("patent");
|
|
|
//申请号
|
|
|
- Query q1 = QueryBuilders.term(t -> t.field("app_no.keyword").value(vo.getAppNo()));
|
|
|
+ Query q1 = null;
|
|
|
+ if (StringUtils.isNotEmpty(vo.getAppNo())) {
|
|
|
+ q1 = QueryBuilders.term(t -> t.field("app_no.keyword").value(vo.getAppNo()));
|
|
|
+ }
|
|
|
//公开号
|
|
|
- Query q2 = QueryBuilders.term(t -> t.field("public_no.keyword").value(vo.getPublicNo()));
|
|
|
+ Query q2 = null;
|
|
|
+ if (StringUtils.isNotEmpty(vo.getPublicNo())) {
|
|
|
+ q2 = QueryBuilders.term(t -> t.field("public_no.keyword").value(vo.getPublicNo()));
|
|
|
+ }
|
|
|
//授权号
|
|
|
// Query q3 = QueryBuilders.term(t -> t.field("patent_no.keyword").value(vo.getGrantNo()));
|
|
|
Query bool = null;
|
|
|
+ Query query1 = q1;
|
|
|
+ Query query2 = q2;
|
|
|
if (StringUtils.isNotEmpty(patentNo)) {
|
|
|
String str = "*";
|
|
|
String s = str.concat(patentNo).concat("*");
|
|
|
Query query = QueryBuilders.wildcard(i -> i.field("patent_no.keyword").value(s));
|
|
|
- bool = QueryBuilders.bool(i -> i.should(q1, q2).must(query));
|
|
|
+ if (query1 != null && query2 == null) {
|
|
|
+ bool = QueryBuilders.bool(i -> i.should(query1));
|
|
|
+ } else if (query2 != null && query1 == null) {
|
|
|
+ bool = QueryBuilders.bool(i -> i.should(query2));
|
|
|
+ } else {
|
|
|
+ bool = QueryBuilders.bool(i -> i.should(query1, query2));
|
|
|
+ }
|
|
|
} else {
|
|
|
- bool = QueryBuilders.bool(i -> i.should(q1, q2));
|
|
|
+ if (query1 != null && query2 == null) {
|
|
|
+ bool = QueryBuilders.bool(i -> i.should(query1));
|
|
|
+ } else if (query2 != null && query1 == null) {
|
|
|
+ bool = QueryBuilders.bool(i -> i.should(query2));
|
|
|
+ } else {
|
|
|
+ bool = QueryBuilders.bool(i -> i.should(query1, query2));
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
builder.query(bool);
|
|
|
//分页
|
|
|
- if (pageNum > 0 && pageSize > 0) {
|
|
|
- builder.from((pageNum - 1) * pageSize).size(pageSize);
|
|
|
- }
|
|
|
+// if (pageNum > 0 && pageSize > 0) {
|
|
|
+// builder.from((pageNum - 1) * pageSize).size(pageSize);
|
|
|
+// }
|
|
|
SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
|
|
|
List<Hit<Patent>> hits = response.hits().hits();
|
|
|
for (Hit<Patent> hit : hits) {
|