Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Q
qk_backend
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
quanku
qk_backend
Commits
aa1cec65
Commit
aa1cec65
authored
Sep 20, 2023
by
shiyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
es根据id范围查询
parent
bb4091f3
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
93 additions
and
0 deletions
+93
-0
ch-admin-api/src/test/java/com/wwdz/ch/admin/impl/ElasticsearchUtilTest.java
...st/java/com/wwdz/ch/admin/impl/ElasticsearchUtilTest.java
+13
-0
ch-dao/src/main/java/com/wwdz/ch/db/dto/request/EsSearchRequestDto.java
...n/java/com/wwdz/ch/db/dto/request/EsSearchRequestDto.java
+2
-0
ch-dao/src/main/java/com/wwdz/ch/db/es/ItemEsDao.java
ch-dao/src/main/java/com/wwdz/ch/db/es/ItemEsDao.java
+78
-0
No files found.
ch-admin-api/src/test/java/com/wwdz/ch/admin/impl/ElasticsearchUtilTest.java
View file @
aa1cec65
...
@@ -65,6 +65,19 @@ public class ElasticsearchUtilTest {
...
@@ -65,6 +65,19 @@ public class ElasticsearchUtilTest {
}
}
@Test
public
void
findByRange
()
{
EsSearchRequestDto
esSearchRequestDto
=
new
EsSearchRequestDto
();
esSearchRequestDto
.
setPage
(
1
);
esSearchRequestDto
.
setSize
(
40
);
esSearchRequestDto
.
setIdStart
(
100L
);
esSearchRequestDto
.
setIdEnd
(
110L
);
EsPageInfo
esPageInfo
=
itemEsDao
.
findByRange
(
esSearchRequestDto
);
logger
.
info
(
"esPageInfo = {}"
,
esPageInfo
);
}
@Test
@Test
public
void
getCuewords
()
{
public
void
getCuewords
()
{
EsSearchRequestDto
esSearchRequestDto
=
new
EsSearchRequestDto
();
EsSearchRequestDto
esSearchRequestDto
=
new
EsSearchRequestDto
();
...
...
ch-dao/src/main/java/com/wwdz/ch/db/dto/request/EsSearchRequestDto.java
View file @
aa1cec65
...
@@ -12,6 +12,8 @@ public class EsSearchRequestDto implements Entity {
...
@@ -12,6 +12,8 @@ public class EsSearchRequestDto implements Entity {
private
Map
<
String
,
String
>
paramMap
;
private
Map
<
String
,
String
>
paramMap
;
private
String
content
;
private
String
content
;
private
Long
idStart
;
private
Long
idEnd
;
private
List
<
String
>
includes
;
private
List
<
String
>
includes
;
private
String
sortField
;
private
String
sortField
;
private
Boolean
isDesc
=
true
;
private
Boolean
isDesc
=
true
;
...
...
ch-dao/src/main/java/com/wwdz/ch/db/es/ItemEsDao.java
View file @
aa1cec65
...
@@ -8,6 +8,7 @@ import co.elastic.clients.elasticsearch.core.bulk.BulkOperation;
...
@@ -8,6 +8,7 @@ import co.elastic.clients.elasticsearch.core.bulk.BulkOperation;
import
co.elastic.clients.elasticsearch.core.bulk.CreateOperation
;
import
co.elastic.clients.elasticsearch.core.bulk.CreateOperation
;
import
co.elastic.clients.elasticsearch.core.search.FieldCollapse
;
import
co.elastic.clients.elasticsearch.core.search.FieldCollapse
;
import
co.elastic.clients.elasticsearch.core.search.Hit
;
import
co.elastic.clients.elasticsearch.core.search.Hit
;
import
co.elastic.clients.json.JsonData
;
import
com.wwdz.ch.db.bean.EsPageInfo
;
import
com.wwdz.ch.db.bean.EsPageInfo
;
import
com.wwdz.ch.db.bean.ItemOfEs
;
import
com.wwdz.ch.db.bean.ItemOfEs
;
import
com.wwdz.ch.db.domain.Item
;
import
com.wwdz.ch.db.domain.Item
;
...
@@ -143,6 +144,83 @@ public class ItemEsDao {
...
@@ -143,6 +144,83 @@ public class ItemEsDao {
public
EsPageInfo
findByRange
(
EsSearchRequestDto
esSearchRequestDto
)
{
EsPageInfo
esPageInfo
=
null
;
try
{
List
<
ItemOfEs
>
list
=
new
ArrayList
<>();
int
page
=
esSearchRequestDto
.
getPage
();
int
size
=
esSearchRequestDto
.
getSize
();
int
from
=
(
page
-
1
)
*
size
;
SearchRequest
.
Builder
builder
=
new
SearchRequest
.
Builder
();
builder
.
index
(
INDEX
);
if
(!
CollectionUtils
.
isEmpty
(
esSearchRequestDto
.
getIncludes
()))
{
builder
.
source
(
sourceBuild
->
sourceBuild
.
filter
(
f
->
f
.
includes
(
esSearchRequestDto
.
getIncludes
())));
}
List
<
FieldValue
>
sourceQueryList
=
new
ArrayList
<>();
SOURCE_LIST
.
forEach
(
i
->
{
sourceQueryList
.
add
(
FieldValue
.
of
(
i
));
});
Query
sourceQuery
=
QueryBuilders
.
terms
(
s
->
s
.
field
(
"source"
).
terms
(
t
->
t
.
value
(
sourceQueryList
)));
//展示待处理和已发布状态的商品
List
<
FieldValue
>
stateQueryList
=
new
ArrayList
<>();
stateQueryList
.
add
(
FieldValue
.
of
(
1
));
stateQueryList
.
add
(
FieldValue
.
of
(
10
));
Query
stateQuery
=
QueryBuilders
.
terms
(
s
->
s
.
field
(
"state"
).
terms
(
t
->
t
.
value
(
stateQueryList
)));
BoolQuery
.
Builder
build
=
QueryBuilders
.
bool
().
filter
(
stateQuery
).
filter
(
sourceQuery
);
Query
wildcardQuery
=
WildcardQuery
.
of
(
w
->
w
.
field
(
"images"
).
value
(
"*_*"
)).
_toQuery
();
build
.
filter
(
wildcardQuery
);
Query
isDeleteQuery
=
TermQuery
.
of
(
t
->
t
.
field
(
"isDeleted"
).
value
(
false
)).
_toQuery
();
build
.
filter
(
isDeleteQuery
);
//只查询权限为公开的商品
Query
viewPermissionQuery
=
TermQuery
.
of
(
t
->
t
.
field
(
"viewPermission"
).
value
(
0
)).
_toQuery
();
build
.
filter
(
viewPermissionQuery
);
//查询非用户发布的
Query
sourceTypeQuery
=
TermQuery
.
of
(
t
->
t
.
field
(
"sourceType"
).
value
(
1
)).
_toQuery
();
build
.
filter
(
sourceTypeQuery
);
if
(
StringUtils
.
hasLength
(
esSearchRequestDto
.
getContent
()))
{
Query
matchQuery
=
MatchQuery
.
of
(
m
->
m
.
field
(
"name"
)
.
query
(
esSearchRequestDto
.
getContent
())
).
_toQuery
();
build
.
must
(
matchQuery
);
}
Query
rangeQuery
=
RangeQuery
.
of
(
r
->
r
.
field
(
"id"
)
.
gte
(
JsonData
.
of
(
esSearchRequestDto
.
getIdStart
()))
.
lt
(
JsonData
.
of
(
esSearchRequestDto
.
getIdEnd
()))).
_toQuery
();
build
.
filter
(
rangeQuery
);
builder
.
query
(
build
.
build
().
_toQuery
());
builder
.
from
(
from
);
builder
.
size
(
size
);
SearchRequest
searchRequest
=
builder
.
build
();
logger
.
info
(
"es查询语句 : {}"
,
searchRequest
.
toString
());
SearchResponse
<
ItemOfEs
>
searchResponse
=
elasticsearchClient
.
search
(
searchRequest
,
ItemOfEs
.
class
);
long
total
=
searchResponse
.
hits
().
total
().
value
();
logger
.
info
(
"总数据量 : {}, 耗时 : {}"
,
total
,
searchResponse
.
took
());
List
<
Hit
<
ItemOfEs
>>
hitList
=
searchResponse
.
hits
().
hits
();
List
<
Long
>
idList
=
new
ArrayList
<>();
for
(
Hit
<
ItemOfEs
>
itemOfEsHit
:
hitList
)
{
ItemOfEs
itemOfEs
=
itemOfEsHit
.
source
();
list
.
add
(
itemOfEs
);
idList
.
add
(
itemOfEs
.
getId
());
}
logger
.
info
(
"======== 返回的数据id : {}"
,
idList
);
esPageInfo
=
EsPageInfo
.
of
(
total
,
list
,
page
,
size
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"ES 查询商品列表 error : {}"
,
e
);
}
return
esPageInfo
;
}
public
void
create
(
List
<
Item
>
itemList
)
{
public
void
create
(
List
<
Item
>
itemList
)
{
// 批量添加数据
// 批量添加数据
List
<
BulkOperation
>
opts
=
new
ArrayList
<>();
List
<
BulkOperation
>
opts
=
new
ArrayList
<>();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment