Search in sources :

Example 11 with Item

use of io.vertigo.dynamo.search.data.domain.Item in project vertigo by KleeGroup.

the class AbstractSearchManagerTest method testPaginatedQuery.

/**
 * Test de requétage de l'index avec tri.
 * La création s'effectue dans une seule transaction.
 */
@Test
public void testPaginatedQuery() {
    index(false);
    final SearchQuery searchQuery = SearchQuery.builder(ListFilter.of("*:*")).build();
    final DtList<Item> dtListFull = doQuery(searchQuery, null).getDtList();
    final DtList<Item> dtList1 = doQuery(searchQuery, new DtListState(4, 0, null, null)).getDtList();
    final DtList<Item> dtList2 = doQuery(searchQuery, new DtListState(4, 4, null, null)).getDtList();
    final DtList<Item> dtList3 = doQuery(searchQuery, new DtListState(4, 2 * 4, null, null)).getDtList();
    Assert.assertEquals(4, dtList1.size());
    Assert.assertEquals(4, dtList2.size());
    // 9 elements
    Assert.assertEquals(itemDataBase.size() - 2 * 4, dtList3.size());
    Assert.assertEquals(dtListFull.get(0).getId(), dtList1.get(0).getId());
    Assert.assertEquals(dtListFull.get(3).getId(), dtList1.get(dtList1.size() - 1).getId());
    Assert.assertEquals(dtListFull.get(4).getId(), dtList2.get(0).getId());
    Assert.assertEquals(dtListFull.get(7).getId(), dtList2.get(dtList2.size() - 1).getId());
    Assert.assertEquals(dtListFull.get(8).getId(), dtList3.get(0).getId());
    Assert.assertEquals(dtListFull.get(dtListFull.size() - 1).getId(), dtList3.get(dtList3.size() - 1).getId());
}
Also used : SearchQuery(io.vertigo.dynamo.search.model.SearchQuery) Item(io.vertigo.dynamo.search.data.domain.Item) DtListState(io.vertigo.dynamo.domain.model.DtListState) Test(org.junit.Test)

Example 12 with Item

use of io.vertigo.dynamo.search.data.domain.Item in project vertigo by KleeGroup.

the class SearchManagerMultiIndexTest method testIndex.

/**
 * Test de création de n enregistrements dans l'index.
 * La création s'effectue dans une seule transaction mais sur deux indexes.
 * Vérifie la capacité du système à gérer plusieurs indexes.
 */
@Test
public void testIndex() {
    final DefinitionSpace definitionSpace = getApp().getDefinitionSpace();
    final SearchIndexDefinition itemIndexDefinition = definitionSpace.resolve(IDX_ITEM, SearchIndexDefinition.class);
    final SearchIndexDefinition itemDynIndexDefinition = definitionSpace.resolve(IDX_DYNA_ITEM, SearchIndexDefinition.class);
    for (final Item item : itemDataBase.getAllItems()) {
        final SearchIndex<Item, Item> index = SearchIndex.createIndex(itemIndexDefinition, item.getURI(), item);
        searchManager.put(itemIndexDefinition, index);
        final SearchIndex<Item, Item> index2 = SearchIndex.createIndex(itemDynIndexDefinition, item.getURI(), item);
        searchManager.put(itemDynIndexDefinition, index2);
    }
    waitIndexation();
    final long size = query("*:*", itemIndexDefinition);
    Assert.assertEquals(itemDataBase.size(), size);
    final long sizeDyn = query("*:*", itemDynIndexDefinition);
    Assert.assertEquals(itemDataBase.size(), sizeDyn);
}
Also used : Item(io.vertigo.dynamo.search.data.domain.Item) SearchIndexDefinition(io.vertigo.dynamo.search.metamodel.SearchIndexDefinition) DefinitionSpace(io.vertigo.core.definition.DefinitionSpace) Test(org.junit.Test)

Example 13 with Item

use of io.vertigo.dynamo.search.data.domain.Item in project vertigo by KleeGroup.

the class SearchManagerStoreTest method testIndexNewData.

/**
 * Test de mise à jour de l'index après une creation.
 * La création s'effectue dans une seule transaction.
 */
@Test
public void testIndexNewData() {
    testIndexAllQuery();
    try (VTransactionWritable transaction = transactionManager.createCurrentTransaction()) {
        final Item item = createNewItem();
        storeManager.getDataStore().create(item);
        transaction.commit();
    }
    waitIndexation();
    Assert.assertEquals(initialDbItemSize + 1, query("*:*"));
    Assert.assertEquals(1, query("DESCRIPTION:légende"));
}
Also used : Item(io.vertigo.dynamo.search.data.domain.Item) VTransactionWritable(io.vertigo.commons.transaction.VTransactionWritable) Test(org.junit.Test)

Example 14 with Item

use of io.vertigo.dynamo.search.data.domain.Item in project vertigo by KleeGroup.

the class SearchManagerStoreTest method createNewItem.

private static Item createNewItem() {
    final Item item = new Item();
    item.setId(null);
    item.setPrice(12000);
    item.setManufacturer("Acme");
    item.setModel("Martin");
    item.setYear(1978);
    item.setKilo(1500);
    final BigDecimal conso = new BigDecimal(7.6);
    conso.setScale(2, RoundingMode.HALF_UP);
    item.setConsommation(conso);
    item.setMotorType("essence");
    item.setDescription("Voiture de légende assurant une reindexation dès son insertion");
    return item;
}
Also used : Item(io.vertigo.dynamo.search.data.domain.Item) BigDecimal(java.math.BigDecimal)

Example 15 with Item

use of io.vertigo.dynamo.search.data.domain.Item in project vertigo by KleeGroup.

the class AbstractSearchManagerTest method testFilterFacetListByTerm.

/**
 * Test le facettage par term d'une liste.
 * Et le filtrage par une facette.
 */
@Test
public void testFilterFacetListByTerm() {
    index(true);
    final SearchQuery searchQuery = SearchQuery.builder(ListFilter.of("*:*")).withFacetStrategy(itemFacetQueryDefinition, EMPTY_SELECTED_FACET_VALUES).build();
    final FacetedQueryResult<Item, SearchQuery> result = searchManager.loadList(itemIndexDefinition, searchQuery, null);
    Assert.assertEquals(itemDataBase.getItemsByManufacturer("peugeot").size(), getFacetValueCount("FCT_MANUFACTURER_ITEM", "peugeot", result));
    // on applique une facette
    final SearchQuery searchQuery2 = SearchQuery.builder(ListFilter.of("*:*")).withFacetStrategy(createFacetQuery("FCT_MANUFACTURER_ITEM", "peugeot", result)).build();
    final FacetedQueryResult<Item, SearchQuery> resultFiltered = searchManager.loadList(itemIndexDefinition, searchQuery2, null);
    Assert.assertEquals(itemDataBase.getItemsByManufacturer("peugeot").size(), (int) resultFiltered.getCount());
}
Also used : SearchQuery(io.vertigo.dynamo.search.model.SearchQuery) Item(io.vertigo.dynamo.search.data.domain.Item) Test(org.junit.Test)

Aggregations

Item (io.vertigo.dynamo.search.data.domain.Item)23 Test (org.junit.Test)18 SearchQuery (io.vertigo.dynamo.search.model.SearchQuery)14 DtListState (io.vertigo.dynamo.domain.model.DtListState)6 SearchIndexDefinition (io.vertigo.dynamo.search.metamodel.SearchIndexDefinition)6 ArrayList (java.util.ArrayList)6 VTransactionWritable (io.vertigo.commons.transaction.VTransactionWritable)5 DefinitionSpace (io.vertigo.core.definition.DefinitionSpace)5 DtList (io.vertigo.dynamo.domain.model.DtList)5 List (java.util.List)5 FacetValue (io.vertigo.dynamo.collections.model.FacetValue)4 URI (io.vertigo.dynamo.domain.model.URI)4 SearchIndex (io.vertigo.dynamo.search.model.SearchIndex)4 DtObjectUtil (io.vertigo.dynamo.domain.util.DtObjectUtil)3 ItemDataBase (io.vertigo.dynamo.search.data.domain.ItemDataBase)3 HashMap (java.util.HashMap)3 Collectors (java.util.stream.Collectors)3 Inject (javax.inject.Inject)3 AbstractTestCaseJU4 (io.vertigo.AbstractTestCaseJU4)2 ListFilter (io.vertigo.dynamo.collections.ListFilter)2