Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
midjourney-proxy
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
徐少华
midjourney-proxy
Commits
a2225650
Commit
a2225650
authored
Dec 09, 2020
by
李传峰
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:[none] 小程序书搜索改为分词搜索方式
parent
4d98ae60
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
95 additions
and
34 deletions
+95
-34
ESBookAndAdviserBizImpl.java
.../com/pcloud/book/es/biz/impl/ESBookAndAdviserBizImpl.java
+45
-25
ESBookAndAdviser.java
...main/java/com/pcloud/book/es/entity/ESBookAndAdviser.java
+6
-0
logback.xml
pcloud-service-book/src/main/resources/logback.xml
+2
-0
Book.Mapper.xml
...rvice-book/src/main/resources/mapper/book/Book.Mapper.xml
+2
-0
ESBookAndAdviserBizTest.java
...st/java/com.pcloud.book.test/ESBookAndAdviserBizTest.java
+40
-9
No files found.
pcloud-service-book/src/main/java/com/pcloud/book/es/biz/impl/ESBookAndAdviserBizImpl.java
View file @
a2225650
...
@@ -20,9 +20,12 @@ import com.pcloud.common.utils.ListUtils;
...
@@ -20,9 +20,12 @@ import com.pcloud.common.utils.ListUtils;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.facade.tradecenter.dto.BookIncomeQueryVo
;
import
com.pcloud.facade.tradecenter.dto.BookIncomeQueryVo
;
import
com.pcloud.facade.tradecenter.dto.IncomeBackDto
;
import
com.pcloud.facade.tradecenter.dto.IncomeBackDto
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.MapUtils
;
import
org.apache.commons.collections.MapUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.elasticsearch.index.query.BoolQueryBuilder
;
import
org.elasticsearch.index.query.BoolQueryBuilder
;
import
org.elasticsearch.index.query.MatchQueryBuilder
;
import
org.elasticsearch.index.query.QueryBuilders
;
import
org.elasticsearch.index.query.QueryBuilders
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
...
@@ -43,8 +46,6 @@ import java.util.Map;
...
@@ -43,8 +46,6 @@ import java.util.Map;
import
java.util.Objects
;
import
java.util.Objects
;
import
java.util.Set
;
import
java.util.Set
;
import
lombok.extern.slf4j.Slf4j
;
/**
/**
* @Description
* @Description
* @Author ruansiyuan
* @Author ruansiyuan
...
@@ -209,18 +210,20 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz {
...
@@ -209,18 +210,20 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz {
.
filter
(
Objects
.
isNull
(
templetId
)
?
QueryBuilders
.
boolQuery
()
:
QueryBuilders
.
termQuery
(
"templetId"
,
templetId
))
.
filter
(
Objects
.
isNull
(
templetId
)
?
QueryBuilders
.
boolQuery
()
:
QueryBuilders
.
termQuery
(
"templetId"
,
templetId
))
.
filter
(
Objects
.
isNull
(
secondTempletId
)
?
QueryBuilders
.
boolQuery
()
:
QueryBuilders
.
termQuery
(
"secondTempletId"
,
secondTempletId
));
.
filter
(
Objects
.
isNull
(
secondTempletId
)
?
QueryBuilders
.
boolQuery
()
:
QueryBuilders
.
termQuery
(
"secondTempletId"
,
secondTempletId
));
BoolQueryBuilder
should
=
QueryBuilders
.
boolQuery
()
.
should
(
StringUtil
.
isEmpty
(
keyword
)
?
QueryBuilders
.
boolQuery
()
:
QueryBuilders
.
wildcardQuery
(
"bookName"
,
IKAnalyzerUtil
.
aroundWildcard
(
IKAnalyzerUtil
.
parseWildcardString
(
keyword
))))
.
should
(
StringUtil
.
isEmpty
(
keyword
)
?
QueryBuilders
.
boolQuery
()
:
QueryBuilders
.
wildcardQuery
(
"isbn"
,
IKAnalyzerUtil
.
aroundWildcard
(
keyword
)));
BoolQueryBuilder
should1
=
QueryBuilders
.
boolQuery
()
BoolQueryBuilder
should1
=
QueryBuilders
.
boolQuery
()
.
should
(
QueryBuilders
.
termQuery
(
"isBookAdviserDelete"
,
0
))
.
should
(
QueryBuilders
.
termQuery
(
"isBookAdviserDelete"
,
0
))
.
should
(
QueryBuilders
.
termQuery
(
"isAdviserBook"
,
0
));
.
should
(
QueryBuilders
.
termQuery
(
"isAdviserBook"
,
0
));
// 审核通过之后屏蔽掉测试编辑的书刊
// 审核通过之后屏蔽掉测试编辑的书刊
BoolQueryBuilder
adviserIdBuilder
=
getAdviserIdBuilder
(
grayStatus
);
BoolQueryBuilder
adviserIdBuilder
=
getAdviserIdBuilder
(
grayStatus
);
boolQueryBuilder
.
must
(
should
);
if
(
isIsbn
(
keyword
))
{
boolQueryBuilder
.
must
(
QueryBuilders
.
termsQuery
(
"isbn"
,
keyword
));
}
else
if
(
StringUtils
.
isNotBlank
(
keyword
))
{
MatchQueryBuilder
mqb
=
QueryBuilders
.
matchQuery
(
"ikBookName"
,
keyword
).
minimumShouldMatch
(
"75%"
);
boolQueryBuilder
.
must
(
mqb
);
}
boolQueryBuilder
.
must
(
should1
);
boolQueryBuilder
.
must
(
should1
);
boolQueryBuilder
.
must
(
adviserIdBuilder
);
boolQueryBuilder
.
must
(
adviserIdBuilder
);
Sort
sort
=
new
Sort
(
Sort
.
Direction
.
DESC
,
"isAdviserBook"
,
"lastModifiedDate"
,
"bookId"
);
Sort
sort
=
new
Sort
(
Sort
.
Direction
.
DESC
,
"isAdviserBook"
,
"lastModifiedDate"
,
"bookId"
);
...
@@ -246,34 +249,47 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz {
...
@@ -246,34 +249,47 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz {
return
adviserIdBuilder
;
return
adviserIdBuilder
;
}
}
private
boolean
isIsbn
(
String
keyword
)
{
return
StringUtils
.
isNumeric
(
keyword
)
&&
StringUtils
.
length
(
keyword
)
>
4
;
}
@Override
@Override
public
Page
<
ESBookAndAdviser
>
getESAdviserBooks4Applet
(
String
grayStatus
,
String
keyword
,
List
<
Long
>
templetIds
,
List
<
Long
>
graLabelIds
,
public
Page
<
ESBookAndAdviser
>
getESAdviserBooks4Applet
(
String
grayStatus
,
String
keyword
,
List
<
Long
>
templetIds
,
List
<
Long
>
graLabelIds
,
List
<
Long
>
subLabelIds
,
Integer
currentPage
,
Integer
numPerPage
,
List
<
Long
>
scecondTempletIds
,
Integer
isAdviserBook
,
List
<
Long
>
adviserIds
,
Long
agentId
)
{
List
<
Long
>
subLabelIds
,
Integer
currentPage
,
Integer
numPerPage
,
List
<
Long
>
scecondTempletIds
,
Integer
isAdviserBook
,
List
<
Long
>
adviserIds
,
Long
agentId
)
{
long
start
=
System
.
currentTimeMillis
();
BoolQueryBuilder
boolQueryBuilder
=
QueryBuilders
.
boolQuery
()
BoolQueryBuilder
boolQueryBuilder
=
QueryBuilders
.
boolQuery
()
.
filter
(
QueryBuilders
.
termQuery
(
"isBookDelete"
,
0
))
.
filter
(
QueryBuilders
.
termQuery
(
"isBookDelete"
,
0
))
.
filter
(
QueryBuilders
.
termQuery
(
"isBookAdviserDelete"
,
0
))
.
filter
(
QueryBuilders
.
termQuery
(
"isBookAdviserDelete"
,
0
));
.
filter
(
ListUtils
.
isEmpty
(
templetIds
)
?
QueryBuilders
.
boolQuery
()
:
QueryBuilders
.
termsQuery
(
"templetId"
,
templetIds
))
if
(
CollectionUtils
.
isNotEmpty
(
templetIds
))
{
.
filter
(
null
==
agentId
?
QueryBuilders
.
boolQuery
()
:
QueryBuilders
.
termsQuery
(
"adviserId"
,
adviserIds
));
boolQueryBuilder
.
filter
(
QueryBuilders
.
termsQuery
(
"templetId"
,
templetIds
));
}
BoolQueryBuilder
should
=
QueryBuilders
.
boolQuery
()
if
(
agentId
!=
null
)
{
.
should
(
StringUtil
.
isEmpty
(
keyword
)
?
QueryBuilders
.
boolQuery
()
boolQueryBuilder
.
filter
(
QueryBuilders
.
termsQuery
(
"adviserId"
,
adviserIds
));
:
QueryBuilders
.
wildcardQuery
(
"bookName"
,
IKAnalyzerUtil
.
aroundWildcard
(
IKAnalyzerUtil
.
parseWildcardString
(
keyword
))))
}
.
should
(
StringUtil
.
isEmpty
(
keyword
)
?
QueryBuilders
.
boolQuery
()
:
QueryBuilders
.
wildcardQuery
(
"isbn"
,
IKAnalyzerUtil
.
aroundWildcard
(
keyword
)));
BoolQueryBuilder
should1
=
QueryBuilders
.
boolQuery
()
.
should
(
null
==
isAdviserBook
?
QueryBuilders
.
boolQuery
()
:
QueryBuilders
.
termQuery
(
"isAdviserBook"
,
isAdviserBook
));
//(年级&&科目)||二级分类
//(年级&&科目)||二级分类
BoolQueryBuilder
must1
=
QueryBuilders
.
boolQuery
()
BoolQueryBuilder
must1
=
QueryBuilders
.
boolQuery
()
.
filter
(
ListUtils
.
isEmpty
(
graLabelIds
)
?
QueryBuilders
.
boolQuery
()
:
QueryBuilders
.
termsQuery
(
"graLabelId"
,
graLabelIds
))
.
filter
(
ListUtils
.
isEmpty
(
graLabelIds
)
?
QueryBuilders
.
boolQuery
()
:
QueryBuilders
.
termsQuery
(
"graLabelId"
,
graLabelIds
))
.
filter
(
ListUtils
.
isEmpty
(
subLabelIds
)
?
QueryBuilders
.
boolQuery
()
:
QueryBuilders
.
termsQuery
(
"subLabelId"
,
subLabelIds
));
.
filter
(
ListUtils
.
isEmpty
(
subLabelIds
)
?
QueryBuilders
.
boolQuery
()
:
QueryBuilders
.
termsQuery
(
"subLabelId"
,
subLabelIds
));
BoolQueryBuilder
must2
=
QueryBuilders
.
boolQuery
().
filter
(
ListUtils
.
isEmpty
(
scecondTempletIds
)
?
QueryBuilders
.
boolQuery
()
:
QueryBuilders
.
termsQuery
(
"secondTempletId"
,
scecondTempletIds
));
BoolQueryBuilder
must2
=
QueryBuilders
.
boolQuery
().
filter
(
ListUtils
.
isEmpty
(
scecondTempletIds
)
?
QueryBuilders
.
boolQuery
()
:
QueryBuilders
.
termsQuery
(
"secondTempletId"
,
scecondTempletIds
));
BoolQueryBuilder
should2
=
QueryBuilders
.
boolQuery
().
should
(
must1
).
should
(
must2
);
BoolQueryBuilder
should2
=
QueryBuilders
.
boolQuery
().
should
(
must1
).
should
(
must2
);
// 审核通过之后屏蔽掉测试编辑的书刊
// 审核通过之后屏蔽掉测试编辑的书刊
BoolQueryBuilder
adviserIdBuilder
=
getAdviserIdBuilder
(
grayStatus
);
BoolQueryBuilder
adviserIdBuilder
=
getAdviserIdBuilder
(
grayStatus
);
boolQueryBuilder
.
must
(
adviserIdBuilder
);
boolQueryBuilder
.
must
(
adviserIdBuilder
);
boolQueryBuilder
.
must
(
should
);
boolQueryBuilder
.
must
(
should1
);
if
(
isIsbn
(
keyword
))
{
boolQueryBuilder
.
must
(
QueryBuilders
.
termsQuery
(
"isbn"
,
keyword
));
}
else
if
(
StringUtils
.
isNotBlank
(
keyword
))
{
MatchQueryBuilder
mqb
=
QueryBuilders
.
matchQuery
(
"ikBookName"
,
keyword
).
minimumShouldMatch
(
"75%"
);
boolQueryBuilder
.
must
(
mqb
);
}
if
(
isAdviserBook
!=
null
)
{
boolQueryBuilder
.
must
(
QueryBuilders
.
termQuery
(
"isAdviserBook"
,
isAdviserBook
));
}
if
(!
ListUtils
.
isEmpty
(
scecondTempletIds
))
{
if
(!
ListUtils
.
isEmpty
(
scecondTempletIds
))
{
if
(
ListUtils
.
isEmpty
(
graLabelIds
)
&&
ListUtils
.
isEmpty
(
subLabelIds
))
{
if
(
ListUtils
.
isEmpty
(
graLabelIds
)
&&
ListUtils
.
isEmpty
(
subLabelIds
))
{
boolQueryBuilder
.
must
(
must2
);
boolQueryBuilder
.
must
(
must2
);
...
@@ -283,10 +299,14 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz {
...
@@ -283,10 +299,14 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz {
}
else
if
(!
ListUtils
.
isEmpty
(
graLabelIds
)
||
!
ListUtils
.
isEmpty
(
subLabelIds
))
{
}
else
if
(!
ListUtils
.
isEmpty
(
graLabelIds
)
||
!
ListUtils
.
isEmpty
(
subLabelIds
))
{
boolQueryBuilder
.
must
(
must1
);
boolQueryBuilder
.
must
(
must1
);
}
}
//
基金书
//
排序:因为涉及分词,故而_score固定放在第一位
Sort
sort
=
new
Sort
(
Sort
.
Direction
.
DESC
,
"isFundSupport"
,
"fundBookValue"
,
"resourceCount"
,
"isAdviserBook"
,
"lastModifiedDate"
,
"bookId"
);
Sort
sort
=
new
Sort
(
Sort
.
Direction
.
DESC
,
"
_score"
,
"
isFundSupport"
,
"fundBookValue"
,
"resourceCount"
,
"isAdviserBook"
,
"lastModifiedDate"
,
"bookId"
);
PageRequest
pageRequest
=
new
PageRequest
(
currentPage
,
numPerPage
,
sort
);
PageRequest
pageRequest
=
new
PageRequest
(
currentPage
,
numPerPage
,
sort
);
Page
<
ESBookAndAdviser
>
search
=
bookAndAdviserRepository
.
search
(
boolQueryBuilder
,
pageRequest
);
Page
<
ESBookAndAdviser
>
search
=
bookAndAdviserRepository
.
search
(
boolQueryBuilder
,
pageRequest
);
log
.
info
(
"es.search({})==>{},total={},cost={}"
,
StringUtils
.
replaceEach
(
boolQueryBuilder
.
toString
(),
new
String
[]{
"\n"
,
" "
,
" : "
},
new
String
[]{
""
,
""
,
":"
}),
search
,
search
.
getTotalElements
(),
(
System
.
currentTimeMillis
()
-
start
));
return
search
;
return
search
;
}
}
...
...
pcloud-service-book/src/main/java/com/pcloud/book/es/entity/ESBookAndAdviser.java
View file @
a2225650
...
@@ -78,6 +78,12 @@ public class ESBookAndAdviser {
...
@@ -78,6 +78,12 @@ public class ESBookAndAdviser {
private
String
bookName
;
private
String
bookName
;
/**
/**
* 书籍名称,同上面bookName,ES按分词存储,主要用于分词搜索
*/
@Field
(
type
=
FieldType
.
String
,
index
=
FieldIndex
.
analyzed
,
analyzer
=
"ik_max_word"
,
searchAnalyzer
=
"ik_max_word"
)
private
String
ikBookName
;
/**
* 是否删除(书)
* 是否删除(书)
*/
*/
private
String
isBookDelete
;
private
String
isBookDelete
;
...
...
pcloud-service-book/src/main/resources/logback.xml
View file @
a2225650
...
@@ -105,5 +105,6 @@
...
@@ -105,5 +105,6 @@
<logger
name=
"net.sf.ehcache"
level=
"DEBUG"
/>
<logger
name=
"net.sf.ehcache"
level=
"DEBUG"
/>
<logger
name=
"druid.sql"
level=
"DEBUG"
/>
<logger
name=
"druid.sql"
level=
"DEBUG"
/>
<logger
name=
"io.micrometer.influx.InfluxRegistry"
level=
"ERROR"
/>
</configuration>
</configuration>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/book/Book.Mapper.xml
View file @
a2225650
...
@@ -2318,6 +2318,7 @@
...
@@ -2318,6 +2318,7 @@
B.BOOK_ID bookId,
B.BOOK_ID bookId,
B.ISBN isbn,
B.ISBN isbn,
B.BOOK_NAME bookName,
B.BOOK_NAME bookName,
B.BOOK_NAME ikBookName,
B.IS_DELETE isBookDelete,
B.IS_DELETE isBookDelete,
B.TYPE_CODE typeCode,
B.TYPE_CODE typeCode,
IF(A.IS_DELETE is NULL, 0, A.IS_DELETE) isBookAdviserDelete,
IF(A.IS_DELETE is NULL, 0, A.IS_DELETE) isBookAdviserDelete,
...
@@ -2355,6 +2356,7 @@
...
@@ -2355,6 +2356,7 @@
B.BOOK_ID bookId,
B.BOOK_ID bookId,
B.ISBN isbn,
B.ISBN isbn,
B.BOOK_NAME bookName,
B.BOOK_NAME bookName,
B.BOOK_NAME ikBookName,
B.IS_DELETE isBookDelete,
B.IS_DELETE isBookDelete,
B.TYPE_CODE typeCode,
B.TYPE_CODE typeCode,
IF(A.IS_DELETE is NULL, 0, A.IS_DELETE) isBookAdviserDelete,
IF(A.IS_DELETE is NULL, 0, A.IS_DELETE) isBookAdviserDelete,
...
...
pcloud-service-book/src/test/java/com.pcloud.book.test/ESBookAndAdviserBizTest.java
View file @
a2225650
...
@@ -3,8 +3,11 @@ package com.pcloud.book.test;
...
@@ -3,8 +3,11 @@ package com.pcloud.book.test;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.pcloud.book.BookApplication
;
import
com.pcloud.book.BookApplication
;
import
com.pcloud.book.es.biz.ESBookAndAdviserBiz
;
import
com.pcloud.book.es.biz.ESBookAndAdviserBiz
;
import
com.pcloud.book.es.biz.impl.IKAnalyzerUtil
;
import
com.pcloud.book.es.entity.ESBookAndAdviser
;
import
com.pcloud.book.es.entity.ESBookAndAdviser
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.time.StopWatch
;
import
org.junit.Test
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -22,23 +25,51 @@ public class ESBookAndAdviserBizTest {
...
@@ -22,23 +25,51 @@ public class ESBookAndAdviserBizTest {
@Test
@Test
public
void
testes
()
{
public
void
testes
()
{
Page
<
ESBookAndAdviser
>
p
=
esBookAndAdviserBiz
.
getAdviserBooks4ES
(
null
,
"计算机互联网"
,
StopWatch
sw
=
new
StopWatch
();
null
,
null
,
0
,
50
);
sw
.
start
();
String
keyword
=
"9787566602442"
;
Page
<
ESBookAndAdviser
>
p
=
esBookAndAdviserBiz
.
getESAdviserBooks4Applet
(
null
,
keyword
,
null
,
null
,
null
,
0
,
100
,
null
,
null
,
null
,
null
);
log
.
info
(
"
count:{}"
,
p
.
getTotalElements
(
));
log
.
info
(
"
key:{},count:{},cost:{},==>{}"
,
keyword
,
p
.
getTotalElements
(),
sw
.
getTime
(),
StringUtils
.
join
(
IKAnalyzerUtil
.
analyzerText
(
keyword
),
" "
));
p
.
forEach
((
baa
)
->
log
.
info
(
JSON
.
toJSONString
(
baa
)));
p
.
forEach
((
baa
)
->
log
.
info
(
JSON
.
toJSONString
(
baa
)));
p
=
esBookAndAdviserBiz
.
getAdviserBooks4ES
(
null
,
"测试书籍"
,
sw
.
reset
();
null
,
null
,
0
,
50
);
sw
.
start
();
keyword
=
"2020秋百年学典三年级"
;
p
=
esBookAndAdviserBiz
.
getESAdviserBooks4Applet
(
null
,
keyword
,
null
,
null
,
null
,
0
,
100
,
null
,
null
,
null
,
null
);
log
.
info
(
"
count:{}"
,
p
.
getTotalElements
(
));
log
.
info
(
"
key:{},count:{},cost:{},==>{}"
,
keyword
,
p
.
getTotalElements
(),
sw
.
getTime
(),
StringUtils
.
join
(
IKAnalyzerUtil
.
analyzerText
(
keyword
),
" "
));
p
.
forEach
((
baa
)
->
log
.
info
(
JSON
.
toJSONString
(
baa
)));
p
.
forEach
((
baa
)
->
log
.
info
(
JSON
.
toJSONString
(
baa
)));
p
=
esBookAndAdviserBiz
.
getAdviserBooks4ES
(
null
,
"学基础训练上册"
,
sw
.
reset
();
null
,
null
,
0
,
50
);
sw
.
start
();
keyword
=
"码群书"
;
p
=
esBookAndAdviserBiz
.
getESAdviserBooks4Applet
(
null
,
keyword
,
null
,
null
,
null
,
0
,
100
,
null
,
null
,
null
,
null
);
log
.
info
(
"
count:{}"
,
p
.
getTotalElements
(
));
log
.
info
(
"
key:{},count:{},cost:{},==>{}"
,
keyword
,
p
.
getTotalElements
(),
sw
.
getTime
(),
StringUtils
.
join
(
IKAnalyzerUtil
.
analyzerText
(
keyword
),
" "
));
p
.
forEach
((
baa
)
->
log
.
info
(
JSON
.
toJSONString
(
baa
)));
p
.
forEach
((
baa
)
->
log
.
info
(
JSON
.
toJSONString
(
baa
)));
sw
.
reset
();
sw
.
start
();
keyword
=
"跟着名师学数学 单元测试卷 六年级第一学期\\n(跟着名师学数学)本书由一线名师编写,紧扣新课标的标准,在内容编排上,结合新教材的要求,设置了以下试卷类型: 阶段基础训练、阶段拓展训练、综合测试卷、期中、期末模拟试卷和参考答案"
;
p
=
esBookAndAdviserBiz
.
getESAdviserBooks4Applet
(
null
,
keyword
,
null
,
null
,
null
,
0
,
100
,
null
,
null
,
null
,
null
);
log
.
info
(
"key:{},count:{},cost:{},==>{}"
,
keyword
,
p
.
getTotalElements
(),
sw
.
getTime
(),
StringUtils
.
join
(
IKAnalyzerUtil
.
analyzerText
(
keyword
),
" "
));
p
.
forEach
((
baa
)
->
log
.
info
(
JSON
.
toJSONString
(
baa
)));
sw
.
stop
();
}
}
...
...
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