设置查询字段
在schema配置文件中加入要设置的字段,并把类型设置为先前设置好的text_ik,这样就可以使用ik分词器了。
<field name="resume_content" type="text_ik" indexed="true" stored="true"/>
<field name="name" type="text_ik" indexed="true" stored="true"/>
<field name="gender" type="text_ik" indexed="true" stored="true"/>
<field name="age" type="text_ik" indexed="true" stored="true"/>
<field name="work_seniority" type="text_ik" indexed="true" stored="true"/>
<field name="edu_background" type="text_ik" indexed="true" stored="true"/>
<field name="cellphone" type="text_ik" indexed="true" stored="true"/>
<field name="email" type="text_ik" indexed="true" stored="true"/>
<field name="file_name" type="text_ik" indexed="true" stored="true"/>
具体实现代码
public Map<String, Object> queryResume(Map<String, String> conditions, int pageNumber) throws SolrServerException, IOException {
Page page = ResumeBasicServiceImpl.getByPage(conditions, pageNumber);
if (page.getCount() > 0) {
for (int i = 0; i < page.getData().size(); i++) {
System.out.println(page.getData().get(i));
}
} else {
System.out.println("空");
}
// 创建反馈报文信息
Map<String, Object> resultMap = new HashMap<>();
resultMap.put(ResultUtils.ERROR_CODE, "200");
resultMap.put(ResultUtils.ERROR_MESSAGE, "获取成功");
resultMap.put(ResultUtils.DATA, page);
return resultMap;
}
public static Page getByPage(Map<String, String> conditions, int pageNumber) {
Page page = new Page();
String queryConditions = linkConditions(conditions);
page.setConditions(conditions);
SolrQuery query = new SolrQuery();
if (StringUtils.isNotEmpty(queryConditions)) {
query.setQuery(queryConditions);
} else {
query.setQuery("*:*");
}
// 查询页面不为空
if (pageNumber >= 1) {
page.setCurrent(pageNumber);
}
//开始页
query.setStart((int)page.getStart());
//一页显示多少条
query.setRows(page.getSize());
List<ResumeBasic> list = new ArrayList<ResumeBasic>();
try {
QueryResponse rsp = solrServer.query(query);
SolrDocumentList docs = rsp.getResults();
Iterator<SolrDocument> iter = docs.iterator();
while (iter.hasNext()) {
ResumeBasic resumeBasic = new ResumeBasic();
SolrDocument doc = iter.next();
String name = doc.getFieldValue("name").toString();
String gender = doc.getFieldValue("gender").toString();
String age = doc.getFieldValue("age").toString();
String workSeniority = doc.getFieldValue("work_seniority").toString();
String email = doc.getFieldValue("email").toString();
String eduBackground = doc.getFieldValue("edu_background").toString();
String cellphone = doc.getFieldValue("cellphone").toString();
String fileName = doc.getFieldValue("file_name").toString();
resumeBasic.setName(name);
resumeBasic.setGender(gender);
resumeBasic.setAge(age);
resumeBasic.setWorkSeniority(workSeniority);
resumeBasic.setEmail(email);
resumeBasic.setEduBackground(eduBackground);
resumeBasic.setCellphone(cellphone);
resumeBasic.setFilePath(fileName);
list.add(resumeBasic);
}
page.setDatas(list);
page.setCount(docs.getNumFound());
System.out.println(docs.getNumFound());
} catch (Exception e) {
}
return page;
}