我将要连接的sql server远程数据库中的连接数增加到3000个。当我从另一个远程Windows服务器部署war时,以下休眠搜索查询在登录后不返回任何匹配名称,但是当我在具有数据库的Windows服务器上部署了相同的战争,休眠搜索返回具有在仪表板中登录的匹配结果。这是片段
@Transactional
public List<Books> finding(String searchTerm) {
org.apache.lucene.search.Query luceneQuery = qb.keyword().fuzzy().withEditDistanceUpTo(1).withPrefixLength(1).onFields("name")
.matching(searchTerm).createQuery();
javax.persistence.Query jpaQuery = fullTextEntityManager.createFullTextQuery(luceneQuery, Books.class);
List<Books> bList = null;
try {
jpaQuery.setMaxResults(50);
bList = jpaQuery.getResultList();
} catch (NoResultException nre) {
// do nothing
}
return bList;
}
我缺少让我从远程服务器获取休眠搜索结果的任何内容
答案 0 :(得分:0)
我假定您使用的是Lucene集成(默认设置),而不是Elasticsearch集成。
Lucene索引存储在文件系统上,因此具有两个不同文件系统的两个服务器仅使用索引的两个不同副本:一个包含已索引的文档,因为您在该服务器上触发了索引,另一个则是空的,因为您没有。
如果假设您的两个服务器具有两个不同的数据库(例如生产服务器和开发服务器)独立运行,那么您只需在两个服务器上触发重新索引。
另一方面,如果应该将两个服务器连接,读取和写入同一数据库,则可以有效地运行分布式应用程序。 您需要采取特定(而非平凡)的步骤才能在分布式服务器之间同步索引。 参见this answer和this section of the reference documentation。