修复若干问题

在AddUserAddress.vue中将“修改地址”改为“添加地址”
搜索服务过滤不重要关键字(如“子”,“的”)
This commit is contained in:
EhusoeAsom 2024-04-24 21:53:22 +08:00
parent 8d7a669224
commit 1da74a4b93
2 changed files with 24 additions and 14 deletions

View File

@ -4,7 +4,7 @@
<header> <header>
<i class="fa fa-angle-left" @click="back"></i> <i class="fa fa-angle-left" @click="back"></i>
<p>修改地址</p> <p>添加地址</p>
</header> </header>
<div class="shangbiao"> <div class="shangbiao">

View File

@ -12,6 +12,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List; import java.util.List;
@Service @Service
@ -21,27 +23,35 @@ public class SearchServiceImpl implements SearchService {
@Autowired @Autowired
private BusinessMapper businessMapper; private BusinessMapper businessMapper;
@Override static private final HashSet<Character> skipwords=new HashSet<>(Arrays.asList('的','子'));
public List<Food> listFoodByKeyword(String query) {
static private List<String> getKeywords(String query){
Result res = ToAnalysis.parse(query); Result res = ToAnalysis.parse(query);
List<String> keywords=new ArrayList<>(); List<String> keywords=new ArrayList<>();
for(Term term:res){ for(Term term:res){
if(!term.getName().matches("^\\s+$")){ StringBuilder sb=new StringBuilder();
keywords.add(term.getName()); for(int i=0;i<term.getName().length();i++){
Character ch=term.getName().charAt(i);
if(!skipwords.contains(ch)) {
sb.append(ch);
}
}
String newStr=sb.toString();
if(!(newStr.isEmpty()||newStr.matches("^\\s+$"))){
keywords.add(newStr);
} }
} }
return foodMapper.listFoodByKeyWord(keywords); return keywords;
}
@Override
public List<Food> listFoodByKeyword(String query) {
List<String> keywords=getKeywords(query);
return foodMapper.listFoodByKeyWord(getKeywords(query));
} }
@Override @Override
public List<Business> listBusinessByKeyword(String query) { public List<Business> listBusinessByKeyword(String query) {
Result res = ToAnalysis.parse(query); return businessMapper.listBusinessByKeyword(getKeywords(query));
List<String> keywords=new ArrayList<>();
for(Term term:res){
if(!term.getName().matches("^\\s+$")){
keywords.add(term.getName());
}
}
return businessMapper.listBusinessByKeyword(keywords);
} }
} }