in tablestore-java-mcp-server-rag/tablestore-mcp-server/src/main/java/com/alicloud/openservices/tablestore/sample/service/TablestoreService.java [140:165]
public List<FAQContent> searchFAQ(SearchFAQQuery request) {
String query = request.getQuery();
int size = request.getSize();
log.info("search faq:[{}], size:{}", query, size);
float[] embedQuery = embeddingService.embed(query);
SearchQuery searchQuery = SearchQuery.newBuilder()
.query(QueryBuilders.bool()
.should(QueryBuilders.knnVector(embeddingField, Math.min(1000, size + 100), embedQuery))
.should(QueryBuilders.match(textField, query))
)
.getTotalCount(false)
.limit(size)
.offset(0)
.sort(new Sort(Collections.singletonList(new ScoreSort())))
.build();
SearchRequest searchRequest = SearchRequest.newBuilder()
.tableName(faqStore)
.indexName(faqIndex)
.searchQuery(searchQuery)
.returnAllColumns(true)
.build();
SearchResponse response = client.search(searchRequest);
log.info("search requestId:{}", response.getRequestId());
return searchResponseToFAQContent(response);
}