diff --git a/server/src/dev/resources/application.yml b/server/src/dev/resources/application.yml index 4dcd85604..e98cc1272 100644 --- a/server/src/dev/resources/application.yml +++ b/server/src/dev/resources/application.yml @@ -202,7 +202,7 @@ ovsx: enabled: true enforced: false required: false - similarity-threshold: 0.2 + similarity-threshold: 0.15 skip-if-publisher-verified: false only-protect-verified-names: false allow-similarity-to-own-names: true diff --git a/server/src/main/java/org/eclipse/openvsx/repositories/ExtensionJooqRepository.java b/server/src/main/java/org/eclipse/openvsx/repositories/ExtensionJooqRepository.java index 5f1cbf436..d4eb11b9d 100644 --- a/server/src/main/java/org/eclipse/openvsx/repositories/ExtensionJooqRepository.java +++ b/server/src/main/java/org/eclipse/openvsx/repositories/ExtensionJooqRepository.java @@ -33,9 +33,11 @@ public class ExtensionJooqRepository { private final DSLContext dsl; + private final ExtensionVersionJooqRepository extensionVersionRepo; - public ExtensionJooqRepository(DSLContext dsl) { + public ExtensionJooqRepository(DSLContext dsl, ExtensionVersionJooqRepository extensionVersionRepo) { this.dsl = dsl; + this.extensionVersionRepo = extensionVersionRepo; } public List findAllActiveById(Collection ids) { @@ -405,10 +407,16 @@ public List findSimilarExtensionsByLevenshtein( maxDisplayNameDistance.cast(Integer.class) ); + var latestQuery = extensionVersionRepo.findLatestQuery(null, false, true); + latestQuery.addSelect(EXTENSION_VERSION.ID); + latestQuery.addConditions(EXTENSION_VERSION.EXTENSION_ID.eq(EXTENSION.ID)); + var latestVersionId = latestQuery.asField().coerce(Long.class); + var displayNameSimilaritySubquery = DSL.selectOne() .from(evLatest) .where(evLatest.EXTENSION_ID.eq(EXTENSION.ID)) .and(evLatest.ACTIVE.eq(true)) + .and(evLatest.ID.eq(latestVersionId)) .and(evLatest.DISPLAY_NAME.isNotNull()) .and(evLatest.DISPLAY_NAME.ne("")) .and(DSL.length(evLatest.DISPLAY_NAME).between(minLen, lenMax)) diff --git a/server/src/main/java/org/eclipse/openvsx/repositories/ExtensionVersionJooqRepository.java b/server/src/main/java/org/eclipse/openvsx/repositories/ExtensionVersionJooqRepository.java index 3970b16e3..e2a483238 100644 --- a/server/src/main/java/org/eclipse/openvsx/repositories/ExtensionVersionJooqRepository.java +++ b/server/src/main/java/org/eclipse/openvsx/repositories/ExtensionVersionJooqRepository.java @@ -1224,7 +1224,7 @@ public ExtensionVersion findLatestForAllUrls( }); } - private SelectQuery findLatestQuery( + SelectQuery findLatestQuery( String targetPlatform, boolean onlyPreRelease, boolean onlyActive