Для целей тестирования я хочу использовать встроенный поиск упругости. Но я изо всех сил пытаюсь заставить его работать.Локальный Elasticsearch не может получить индексированные документы
Я попытался установить очень простой тест, в котором я:
- Создать локальную Elasticsearch
- Создать новый индекс
- Index документ
- Получить документ
- сосчитать количество документов в индексе
Кажется, что все идет нормально, пока я не посчитаю документ, который постоянно возвращает 0
.
Вот мой Junit тест:
private Node node;
@Rule
public TemporaryFolder tmp = new TemporaryFolder();
@Before
public void init() {
Settings settings = ImmutableSettings.settingsBuilder()
.put("path.data", tmp.getRoot().getPath())
.build();
node = NodeBuilder.nodeBuilder().local(true)
.settings(settings).data(true).build();
node.start();
}
@After
public void stop() {
node.stop();
}
@Test
public void testLocal() {
Client client = node.client();
// Create index
client.admin().indices().prepareCreate("index_name").execute().actionGet();
// Index doc
Map<String, Object> docFields = new HashMap<>();
docFields.put("key", "value");
client.prepareIndex("index_name", "index_type", "1")
.setSource(docFields).execute().actionGet();
// Get
GetResponse gr = client.prepareGet("index_name", "index_type", "1")
.execute().actionGet();
// Count
CountResponse cr = client.prepareCount("index_name").execute().actionGet();
Assert.assertTrue(gr.isExists()); // SUCCESS
Assert.assertEquals(1L, cr.getCount()); // FAILURE: actual is 0
}
Я попробовал несколько вариантов этого кода, но ни один не был успешным.
Что я делаю неправильно?
Для записи недостающая строка после индексирования: ... '' client.admin() индексы() prepareRefresh() выполнение() actionGet();. '' –