use of io.zulia.client.config.ClientIndexConfig in project zuliasearch by zuliaio.
the class GetIndexConfig method execute.
@Override
public GetIndexConfigResult execute(ZuliaConnection zuliaConnection) {
ZuliaServiceBlockingStub service = zuliaConnection.getService();
GetIndexSettingsResponse getIndexConfigResponse = service.getIndexSettings(getRequest());
ClientIndexConfig indexConfig = new ClientIndexConfig();
indexConfig.configure(getIndexConfigResponse.getIndexSettings());
return new GetIndexConfigResult(indexConfig);
}
use of io.zulia.client.config.ClientIndexConfig in project zuliasearch by zuliaio.
the class SortTest method multiIndexTest.
@Test
@Order(14)
public void multiIndexTest() throws Exception {
ClientIndexConfig indexConfig = new ClientIndexConfig();
indexConfig.addDefaultSearchField("magicNumber");
indexConfig.addFieldConfig(FieldConfigBuilder.create("id", FieldType.NUMERIC_INT).sort());
indexConfig.addFieldConfig(FieldConfigBuilder.create("magicNumber", FieldType.NUMERIC_INT).index().sort());
indexConfig.setIndexName("anotherIndex");
indexConfig.setNumberOfShards(1);
// force some commits
indexConfig.setShardCommitInterval(20);
zuliaWorkPool.createIndex(indexConfig);
indexConfig.setIndexName("anotherIndex2");
zuliaWorkPool.createIndex(indexConfig);
for (int id = 0; id < 200; id++) {
int magicNumber = 7;
if (id > 10) {
magicNumber = -1;
}
Document mongoDocument = new Document().append("id", id).append("magicNumber", magicNumber);
zuliaWorkPool.store(new Store(id + "", "anotherIndex", ResultDocBuilder.from(mongoDocument)));
}
for (int id = 0; id < 100; id++) {
int magicNumber = (id % 10) + 5;
Document mongoDocument = new Document().append("id", id).append("magicNumber", magicNumber);
zuliaWorkPool.store(new Store(id + "", "anotherIndex2", ResultDocBuilder.from(mongoDocument)));
}
SearchResult searchResult;
Search search = new Search("anotherIndex", "anotherIndex2").setAmount(1);
search.addSort(new Sort("magicNumber"));
searchResult = zuliaWorkPool.search(search);
Assertions.assertEquals(-1, searchResult.getFirstDocument().get("magicNumber"));
search.clearSort();
search.addSort(new Sort("magicNumber").descending());
searchResult = zuliaWorkPool.search(search);
Assertions.assertEquals(14, searchResult.getFirstDocument().get("magicNumber"));
}
use of io.zulia.client.config.ClientIndexConfig in project zuliasearch by zuliaio.
the class SortTest method reindexTest.
@Test
@Order(13)
public void reindexTest() throws Exception {
ClientIndexConfig indexConfig = new ClientIndexConfig();
indexConfig.addDefaultSearchField("title");
indexConfig.addFieldConfig(FieldConfigBuilder.create("id", FieldType.STRING).indexAs(DefaultAnalyzers.LC_KEYWORD).sortAs(// change sort as to be theId instead of just id
"theId"));
indexConfig.addFieldConfig(FieldConfigBuilder.create("title", FieldType.STRING).indexAs(DefaultAnalyzers.STANDARD).sort());
// no longer sortable
indexConfig.addFieldConfig(FieldConfigBuilder.create("stars", FieldType.NUMERIC_INT).index());
indexConfig.addFieldConfig(FieldConfigBuilder.create("starsLong", FieldType.NUMERIC_LONG).index().sort());
// indexConfig.addFieldConfig(FieldConfigBuilder.create("rating", FieldType.NUMERIC_FLOAT).index().sort()); // no longer indexed or sortable
indexConfig.addFieldConfig(FieldConfigBuilder.create("ratingDouble", FieldType.NUMERIC_FLOAT).index().sort());
indexConfig.addFieldConfig(FieldConfigBuilder.create("special", FieldType.BOOL).index().sort());
indexConfig.addFieldConfig(FieldConfigBuilder.create("added", FieldType.DATE).index().sort());
// sort() adds standard string (case senstive sorting with a field name the same as the stored field
// sortAs(LOWERCASE_FOLDING, "otherTitleFolding") add another sortable field with a lowercase and ascii folding filter applied to make case insensitive sort and fancy letter insensitive (gotta be a better term here)
indexConfig.addFieldConfig(FieldConfigBuilder.create("otherTitle", FieldType.STRING).index().sort().sortAs(LOWERCASE_FOLDING, "otherTitleFolding"));
indexConfig.setIndexName(INDEX_NAME);
indexConfig.setNumberOfShards(1);
// force some commits
indexConfig.setShardCommitInterval(20);
zuliaWorkPool.createIndex(indexConfig);
zuliaWorkPool.reindex(new Reindex(INDEX_NAME));
SearchResult searchResult;
Search search = new Search(INDEX_NAME).setAmount(1);
search.addSort(new Sort("otherTitle").ascending().missingLast());
searchResult = zuliaWorkPool.search(search);
Assertions.assertEquals("Blah", searchResult.getFirstDocument().get("otherTitle"));
search.clearSort();
search.addSort(new Sort("otherTitleFolding").ascending().missingLast());
search.addSort(new Sort("starts").ascending().missingLast());
searchResult = zuliaWorkPool.search(search);
Assertions.assertEquals("blah", searchResult.getFirstDocument().get("otherTitle"));
search.clearSort();
search.addSort(new Sort("otherTitle").descending());
searchResult = zuliaWorkPool.search(search);
Assertions.assertEquals("still more blah", searchResult.getFirstDocument().get("otherTitle"));
search.clearSort();
// use the new sort as id field
search.addSort(new Sort("theId").descending());
searchResult = zuliaWorkPool.search(search);
// sorting as string so this is 99 instead of 199
Assertions.assertEquals("99", searchResult.getFirstDocument().get("id"));
}
use of io.zulia.client.config.ClientIndexConfig in project zuliasearch by zuliaio.
the class StartStopTest method reindex.
@Test
@Order(4)
public void reindex() throws Exception {
ClientIndexConfig indexConfig = new ClientIndexConfig();
indexConfig.addDefaultSearchField("title");
indexConfig.addFieldConfig(FieldConfigBuilder.create("id", FieldType.STRING).indexAs(DefaultAnalyzers.LC_KEYWORD).sort());
indexConfig.addFieldConfig(FieldConfigBuilder.create("title", FieldType.STRING).indexAs(DefaultAnalyzers.STANDARD).sort());
indexConfig.addFieldConfig(FieldConfigBuilder.create("issn", FieldType.STRING).indexAs(DefaultAnalyzers.LC_KEYWORD).facet().sort());
indexConfig.addFieldConfig(FieldConfigBuilder.create("eissn", FieldType.STRING).indexAs(DefaultAnalyzers.LC_KEYWORD).facet());
indexConfig.addFieldConfig(FieldConfigBuilder.create("uid", FieldType.STRING).indexAs(DefaultAnalyzers.LC_KEYWORD));
indexConfig.addFieldConfig(FieldConfigBuilder.create("an", FieldType.NUMERIC_INT).index().displayName("Accession Number").sort());
indexConfig.addFieldConfig(FieldConfigBuilder.create("country", FieldType.STRING).indexAs(DefaultAnalyzers.LC_KEYWORD).facet().sort());
indexConfig.addFieldConfig(FieldConfigBuilder.create("date", FieldType.DATE).index().facetAs(DateHandling.DATE_YYYY_MM_DD).description("The very special data").sort());
indexConfig.addFieldConfig(FieldConfigBuilder.create("testList", FieldType.STRING).index());
indexConfig.setIndexName(FACET_TEST_INDEX);
indexConfig.setNumberOfShards(1);
zuliaWorkPool.createIndex(indexConfig);
zuliaWorkPool.reindex(new Reindex(FACET_TEST_INDEX));
Search search = new Search(FACET_TEST_INDEX).addCountFacet(new CountFacet("eissn"));
SearchResult searchResult = zuliaWorkPool.search(search);
List<FacetCount> eissnCounts = searchResult.getFacetCounts("eissn");
Assertions.assertEquals(eissns.length, eissnCounts.size());
for (FacetCount eissnCount : eissnCounts) {
Assertions.assertEquals(COUNT_PER_ISSN, eissnCount.getCount());
}
}
use of io.zulia.client.config.ClientIndexConfig in project zuliasearch by zuliaio.
the class HierarchicalFacetTest method initAll.
@BeforeAll
public static void initAll() throws Exception {
TestHelper.createNodes(3);
TestHelper.startNodes();
Thread.sleep(2000);
zuliaWorkPool = TestHelper.createClient();
ClientIndexConfig indexConfig = new ClientIndexConfig();
indexConfig.addDefaultSearchField("title");
indexConfig.addFieldConfig(FieldConfigBuilder.create("id", FieldType.STRING).indexAs(DefaultAnalyzers.LC_KEYWORD).sort());
indexConfig.addFieldConfig(FieldConfigBuilder.create("title", FieldType.STRING).indexAs(DefaultAnalyzers.STANDARD).sort());
indexConfig.addFieldConfig(FieldConfigBuilder.create("path", FieldType.STRING).indexAs(DefaultAnalyzers.LC_KEYWORD).facetHierarchical().sort());
indexConfig.addFieldConfig(FieldConfigBuilder.create("date", FieldType.DATE).index().facetHierarchical().sort());
indexConfig.addFieldConfig(FieldConfigBuilder.create("normalFacet", FieldType.STRING).indexAs(DefaultAnalyzers.LC_KEYWORD).facet().sort());
indexConfig.addFieldConfig(FieldConfigBuilder.create("normalFacetList", FieldType.STRING).indexAs(DefaultAnalyzers.LC_KEYWORD).facet().sort());
indexConfig.setIndexName(FACET_TEST_INDEX);
indexConfig.setNumberOfShards(1);
// force some commits
indexConfig.setShardCommitInterval(20);
zuliaWorkPool.createIndex(indexConfig);
}
Aggregations