|
@@ -91,7 +91,6 @@ public class EsDenseVectorService {
|
|
|
Float a = Float.parseFloat(item);
|
|
|
imageList.add(a);
|
|
|
});
|
|
|
- System.out.println(imageList);
|
|
|
if (!CollectionUtils.isEmpty(imageList)) {
|
|
|
String source = "cosineSimilarity(params.queryVector, 'my_vector') + 1.0";
|
|
|
InlineScript inlineScript = InlineScript.of(i -> i.lang("painless").params("queryVector", JsonData.of(imageList)).source(source));
|
|
@@ -126,24 +125,15 @@ public class EsDenseVectorService {
|
|
|
SearchResponse<PatentVector> response = client.search(builder.build(), PatentVector.class);
|
|
|
List<Hit<PatentVector>> hits = response.hits().hits();
|
|
|
List<EsPatentVectorVo> vectorVos = new ArrayList<>();
|
|
|
- Double fixedScore = 1.8d;
|
|
|
- if (hits.size() < 10) {
|
|
|
- for (Hit<PatentVector> hit : hits) {
|
|
|
+ Double fixedScore = 1.7d;
|
|
|
+ for (Hit<PatentVector> hit : hits) {
|
|
|
+ Double score = hit.score();
|
|
|
+ if (score > fixedScore) {
|
|
|
PatentVector vector = hit.source();
|
|
|
EsPatentVectorVo vectorVo = new EsPatentVectorVo();
|
|
|
BeanUtil.copy(vector, vectorVo);
|
|
|
vectorVos.add(vectorVo);
|
|
|
}
|
|
|
- } else {
|
|
|
- for (Hit<PatentVector> hit : hits) {
|
|
|
- Double score = hit.score();
|
|
|
- if (score > fixedScore) {
|
|
|
- PatentVector vector = hit.source();
|
|
|
- EsPatentVectorVo vectorVo = new EsPatentVectorVo();
|
|
|
- BeanUtil.copy(vector, vectorVo);
|
|
|
- vectorVos.add(vectorVo);
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
Aggregate aggregate = response.aggregations().get("count");
|
|
@@ -152,7 +142,7 @@ public class EsDenseVectorService {
|
|
|
records.setCurrent(pageNum);
|
|
|
records.setSize(pageSize);
|
|
|
records.setData(vectorVos);
|
|
|
- records.setTotal(total);
|
|
|
+ records.setTotal(total <= vectorVos.size() ? total : vectorVos.size());
|
|
|
return records;
|
|
|
}
|
|
|
|