|
@@ -20,6 +20,16 @@ import java.util.*; |
|
@@ -20,6 +20,16 @@ import java.util.*; |
20
|
@Service
|
20
|
@Service
|
21
|
public class SearchServiceHelper {
|
21
|
public class SearchServiceHelper {
|
22
|
|
22
|
|
|
|
23
|
+ //store_name^1000,store_english_name^1000,store_name_tc^1000,store_first^500,address_full^300,des^100
|
|
|
24
|
+ public final static Map<String, Float> boostMap = new HashMap<String, Float>() {{
|
|
|
25
|
+ put("store_name", 1000f);
|
|
|
26
|
+ put("store_english_name", 1000f);
|
|
|
27
|
+ put("store_name_tc", 1000f);
|
|
|
28
|
+ put("store_first", 500f);
|
|
|
29
|
+ put("address_full", 300f);
|
|
|
30
|
+ put("des", 100f);
|
|
|
31
|
+ }};
|
|
|
32
|
+
|
23
|
|
33
|
|
24
|
/**
|
34
|
/**
|
25
|
* 构造距离查询范围
|
35
|
* 构造距离查询范围
|
|
@@ -107,7 +117,9 @@ public class SearchServiceHelper { |
|
@@ -107,7 +117,9 @@ public class SearchServiceHelper { |
107
|
if (paramMap.containsKey("queryField") && StringUtils.isNotBlank(paramMap.get("queryField"))) {
|
117
|
if (paramMap.containsKey("queryField") && StringUtils.isNotBlank(paramMap.get("queryField"))) {
|
108
|
String[] fields = paramMap.get("queryField").split(",");
|
118
|
String[] fields = paramMap.get("queryField").split(",");
|
109
|
for (int i = 0; i < fields.length; i++) {
|
119
|
for (int i = 0; i < fields.length; i++) {
|
110
|
- queryBuilder.field(fields[i]);
|
120
|
+ if (boostMap.containsKey(fields[i])) {
|
|
|
121
|
+ queryBuilder.field(fields[i], boostMap.get(fields[i]));
|
|
|
122
|
+ }
|
111
|
}
|
123
|
}
|
112
|
} else {
|
124
|
} else {
|
113
|
//设置searchfield和权重
|
125
|
//设置searchfield和权重
|