mirror of
https://github.com/google/nomulus.git
synced 2025-05-13 16:07:15 +02:00
Order RDAP domain searches by TLD in domain name order
I am not happy that another index is required, but the Pantheon console shows that domain indexes are much smaller than the other indexes (because there are fewer domains), so it's not adding an appreciable amount of storage space. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=173561771
This commit is contained in:
parent
4a5b9fc288
commit
74873f90c8
3 changed files with 35 additions and 7 deletions
|
@ -77,6 +77,12 @@
|
|||
<property name="currentSponsorClientId" direction="asc"/>
|
||||
<property name="fullyQualifiedDomainName" direction="asc"/>
|
||||
</datastore-index>
|
||||
<datastore-index kind="DomainBase" ancestor="false" source="manual">
|
||||
<property name="^i" direction="asc"/>
|
||||
<property name="currentSponsorClientId" direction="asc"/>
|
||||
<property name="tld" direction="asc"/>
|
||||
<property name="fullyQualifiedDomainName" direction="asc"/>
|
||||
</datastore-index>
|
||||
<datastore-index kind="DomainBase" ancestor="false" source="manual">
|
||||
<property name="^i" direction="asc"/>
|
||||
<property name="tld" direction="asc"/>
|
||||
|
|
|
@ -238,12 +238,18 @@ public class RdapDomainSearchAction extends RdapActionBase {
|
|||
|
||||
/** Searches for domains by domain name with a TLD suffix. */
|
||||
private RdapSearchResults searchByDomainNameByTld(String tld, DateTime now) {
|
||||
// Since we aren't searching on fullyQualifiedDomainName, we can perform our one allowed
|
||||
// inequality query on deletion time.
|
||||
// Even though we are not searching on fullyQualifiedDomainName, we want the results to come
|
||||
// back ordered by name, so we are still in the same boat as
|
||||
// searchByDomainNameWithInitialString, unable to perform an inequality query on deletion time.
|
||||
// Don't use queryItems, because it doesn't handle pending deletes.
|
||||
Query<DomainResource> query =
|
||||
queryItems(
|
||||
DomainResource.class, "tld", tld, shouldIncludeDeleted(), rdapResultSetMaxSize + 1);
|
||||
return makeSearchResults(getMatchingResources(query, shouldIncludeDeleted(), now), now);
|
||||
ofy()
|
||||
.load()
|
||||
.type(DomainResource.class)
|
||||
.filter("tld", tld)
|
||||
.order("fullyQualifiedDomainName")
|
||||
.limit(RESULT_SET_SIZE_SCALING_FACTOR * rdapResultSetMaxSize);
|
||||
return makeSearchResults(getMatchingResources(query, true, now), now);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -855,7 +855,7 @@ public class RdapDomainSearchActionTest {
|
|||
@Test
|
||||
public void testDomainMatch_star_lol_found() throws Exception {
|
||||
assertThat(generateActualJson(RequestType.NAME, "*.lol"))
|
||||
.isEqualTo(generateExpectedJsonForTwoDomains("cat2.lol", "17-LOL", "cat.lol", "C-LOL"));
|
||||
.isEqualTo(generateExpectedJsonForTwoDomains("cat.lol", "C-LOL", "cat2.lol", "17-LOL"));
|
||||
assertThat(response.getStatus()).isEqualTo(200);
|
||||
}
|
||||
|
||||
|
@ -863,7 +863,7 @@ public class RdapDomainSearchActionTest {
|
|||
public void testDomainMatch_star_lol_found_sameRegistrarRequested() throws Exception {
|
||||
action.registrarParam = Optional.of("evilregistrar");
|
||||
assertThat(generateActualJson(RequestType.NAME, "*.lol"))
|
||||
.isEqualTo(generateExpectedJsonForTwoDomains("cat2.lol", "17-LOL", "cat.lol", "C-LOL"));
|
||||
.isEqualTo(generateExpectedJsonForTwoDomains("cat.lol", "C-LOL", "cat2.lol", "17-LOL"));
|
||||
assertThat(response.getStatus()).isEqualTo(200);
|
||||
}
|
||||
|
||||
|
@ -1056,6 +1056,22 @@ public class RdapDomainSearchActionTest {
|
|||
"rdap_domains_four_truncated.json");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDomainMatch_tldSearchOrderedProperly() throws Exception {
|
||||
createManyDomainsAndHosts(4, 1, 2);
|
||||
assertThat(generateActualJson(RequestType.NAME, "*.lol"))
|
||||
.isEqualTo(readMultiDomainFile(
|
||||
"rdap_domains_four_truncated.json",
|
||||
"cat.lol",
|
||||
"C-LOL",
|
||||
"cat2.lol",
|
||||
"17-LOL",
|
||||
"domain1.lol",
|
||||
"46-LOL",
|
||||
"domain2.lol",
|
||||
"45-LOL"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDomainMatch_reallyTruncatedResultsSet() throws Exception {
|
||||
// Don't use 10 or more domains for this test, because domain10.lol will come before
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue