package gov.nysenate.openleg.service.bill.search;
import gov.nysenate.openleg.BaseTests;
import gov.nysenate.openleg.dao.base.LimitOffset;
import gov.nysenate.openleg.dao.bill.search.ElasticBillSearchDao;
import gov.nysenate.openleg.model.base.SessionYear;
import gov.nysenate.openleg.model.bill.Bill;
import gov.nysenate.openleg.service.bill.data.BillDataService;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
import java.util.stream.Collectors;
public class ElasticBillSearchServiceTests extends BaseTests
{
private static final Logger logger = LoggerFactory.getLogger(ElasticBillSearchServiceTests.class);
@Autowired
BillDataService billDataService;
@Autowired
private ElasticBillSearchDao billSearchDao;
@Autowired
private ElasticBillSearchService billSearchService;
@Test
public void testSearch() throws Exception {
billSearchService.searchBills("explore", null, LimitOffset.TEN).getResults().stream()
.forEach(r -> logger.info("{}", r.getResult()));
}
@Test
public void testBulkIndex() {
LimitOffset limitOffset = new LimitOffset(500, 0);
int billCount;
do {
logger.info("Retrieving bills...");
List<Bill> bills = billDataService.getBillIds(SessionYear.current(), limitOffset).stream()
.map(billDataService::getBill)
.collect(Collectors.toList());
billCount = bills.size();
if (billCount > 0) {
logger.info(String.format("Indexing bills %d - %d",
limitOffset.getOffsetStart(), limitOffset.getOffsetStart() + billCount - 1));
billSearchDao.updateBillIndex(bills);
}
limitOffset = limitOffset.next();
}
while (billCount > 0);
logger.info("done");
}
@Test
public void testRebuildIndex() throws Exception {
// billSearch.rebuildIndex();
}
}