Search in sources :

Example 21 with Item

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

the class ItemSearchLoader method loadData.

/**
 * {@inheritDoc}
 */
@Override
public List<SearchIndex<Item, Item>> loadData(final SearchChunk<Item> searchChunk) {
    final SearchIndexDefinition indexDefinition = searchManager.findFirstIndexDefinitionByKeyConcept(Item.class);
    try (final VTransactionWritable tx = getTransactionManager().createCurrentTransaction()) {
        final List<SearchIndex<Item, Item>> result = new ArrayList<>();
        final DtDefinition dtDefinition = DtObjectUtil.findDtDefinition(Item.class);
        for (final Item item : loadItems(searchChunk)) {
            final URI<Item> uri = new URI<>(dtDefinition, item.getId());
            result.add(SearchIndex.createIndex(indexDefinition, uri, item));
        }
        return result;
    }
}
Also used : Item(io.vertigo.dynamo.search.data.domain.Item) SearchIndexDefinition(io.vertigo.dynamo.search.metamodel.SearchIndexDefinition) SearchIndex(io.vertigo.dynamo.search.model.SearchIndex) ArrayList(java.util.ArrayList) DtDefinition(io.vertigo.dynamo.domain.metamodel.DtDefinition) VTransactionWritable(io.vertigo.commons.transaction.VTransactionWritable) URI(io.vertigo.dynamo.domain.model.URI)

Example 22 with Item

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

the class SearchManagerStoreTest method doSetUp.

@Override
protected void doSetUp() throws Exception {
    final DefinitionSpace definitionSpace = getApp().getDefinitionSpace();
    itemIndexDefinition = definitionSpace.resolve(IDX_ITEM, SearchIndexDefinition.class);
    // A chaque test on recrée la table famille
    try (VTransactionWritable transaction = transactionManager.createCurrentTransaction()) {
        final SqlConnection connection = dataBaseManager.getConnectionProvider(SqlDataBaseManager.MAIN_CONNECTION_PROVIDER_NAME).obtainConnection();
        execCallableStatement(connection, "create table item(ID BIGINT, MANUFACTURER varchar(50), MODEL varchar(255), DESCRIPTION varchar(512), YEAR INT, KILO INT, PRICE INT, CONSOMMATION NUMERIC(8,2), MOTOR_TYPE varchar(50), OPTIONAL_NUMBER BIGINT, OPTIONAL_STRING varchar(50), LAST_MODIFIED timestamp );");
        execCallableStatement(connection, "create sequence SEQ_ITEM start with 10001 increment by 1");
    }
    // On supprime tout
    remove("*:*");
    final ItemDataBase itemDataBase = new ItemDataBase();
    initialDbItemSize = itemDataBase.size();
    try (VTransactionWritable transaction = transactionManager.createCurrentTransaction()) {
        for (final Item item : itemDataBase.getAllItems()) {
            item.setId(null);
            storeManager.getDataStore().create(item);
        }
        transaction.commit();
    }
    waitIndexation();
}
Also used : Item(io.vertigo.dynamo.search.data.domain.Item) ItemDataBase(io.vertigo.dynamo.search.data.domain.ItemDataBase) SearchIndexDefinition(io.vertigo.dynamo.search.metamodel.SearchIndexDefinition) DefinitionSpace(io.vertigo.core.definition.DefinitionSpace) VTransactionWritable(io.vertigo.commons.transaction.VTransactionWritable) SqlConnection(io.vertigo.database.sql.connection.SqlConnection)

Example 23 with Item

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

the class SearchManagerStoreTest method testIndexUpdateData.

/**
 * Test de mise à jour de l'index après une creation.
 * La création s'effectue dans une seule transaction.
 */
@Test
public void testIndexUpdateData() {
    testIndexAllQuery();
    final Item item = createNewItem();
    try (VTransactionWritable transaction = transactionManager.createCurrentTransaction()) {
        storeManager.getDataStore().create(item);
        transaction.commit();
    }
    waitIndexation();
    Assert.assertEquals(initialDbItemSize + 1, query("*:*"));
    Assert.assertEquals(1, query("DESCRIPTION:légende"));
    item.setDescription("Vendue");
    try (VTransactionWritable transaction = transactionManager.createCurrentTransaction()) {
        storeManager.getDataStore().update(item);
        transaction.commit();
    }
    waitIndexation();
    Assert.assertEquals(initialDbItemSize + 1, query("*:*"));
    Assert.assertEquals(0, query("DESCRIPTION:légende"));
    Assert.assertEquals(1, query("DESCRIPTION:vendue"));
}
Also used : Item(io.vertigo.dynamo.search.data.domain.Item) VTransactionWritable(io.vertigo.commons.transaction.VTransactionWritable) 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