Я пытаюсь отлаживать индексирующие документы в Lucene, и мне нужно увидеть содержимое индекса, чтобы я мог точно видеть, как индексировались документы. Предположительно, Luke делает это, но документации для этого нет вообще, и когда я указываю его на индексный каталог (у любого из них, хотя я не знаю, почему он не может понять, какой из них прав сам по себе), Я ничего не получаю. Конечно, есть простой способ сделать это?
Показать содержимое индекса Lucene
Ответ 1
Люк - простой способ сделать это. Вы запускаете его, просматриваете индекс и отправляетесь на гонки. Не может быть проще. Это сообщение в блоге позволяет использовать некоторые функции Luke, возможно, это поможет вам разобраться с ним.
Существуют и другие инструменты, такие как LIMO. Это хороший инструмент для этого, но начать с него легче, чем Luke.
Возможно, если вы дадите несколько подробностей о проблеме, с которой вы столкнулись с Luke, вы сможете получить некоторую помощь в этом.
Ответ 2
Я мало знаю о Люке, но я много работал с Луценой. Чтобы увидеть, что проиндексировано, может быть сложно, даже с Luke, потому что вы можете видеть только данные для сохраненных полей.
Для последнего проекта Lucene, который я сделал (на самом деле Solr), у меня было практически каждое поле, помеченное как индексированное, но не сохраненное. В этих случаях, чтобы проверить, имеет ли документ правильный индексированный термин, я бы запросил индекс для документов с данным первичным ключом и ожидаемым сроком. Если он совпадает, то я знаю, что он проиндексировал его с этим термином.
Например, чтобы увидеть, есть ли продукт 5 на английском языке, я бы сказал productId: 5 и lang: ru
Я знаю, что это прямо не отвечает на ваш вопрос о том, как использовать Люка, но это может быть альтернативой, если Люк не сможет вам помочь.
Ответ 3
Luke пытается показать значения в полях, которые индексируются, но не сохраняются, когда вы используете кнопку "Восстановить и отредактировать" на вкладке "Документы". Если я правильно прав, слова остановки не отображаются на дисплее "Восстановить и изменить" - вы видите такие вещи, как "null_1", "null_2" и т.д.
Ответ 4
Можно скомпилировать luke из источника при добавлении формата поиска Elastic в Luke MetaINF/services.
Просто следуйте этому подходу
Использование Luke с ElasticSearch
Это также можно выполнить, чтобы протестировать пользовательские форматы проводки/кодеки с помощью LUcene
ElasticSearch использует формат пользовательских сообщений (формат сообщений определяет, как инвертированный индекс представлен в памяти/на диске), и Luke не знает об этом. Чтобы сообщить Люку о формате публикации ES, добавьте класс SPI, выполнив следующие шаги.
- Репозиторий источника Clone Luke:
2. Добавьте зависимость от вашей требуемой версии ElasticSearch к файлу pom проектов Luke:
<!-- ElasticSearch -->
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>1.1.1</version>
</dependency>
-
Скомпилируйте файл juke jar (создает цель /luke -with-deps.jar):
$mvn package
4.Unpack Lukes список известных форматов проводок во временный файл:
$ unzip target/luke-with-deps.jar META-INF/services/org.apache.lucene.codecs.PostingsFormat -d ./tmp/
Archive: target/luke-with-deps.jar
inflating: ./tmp/META-INF/services/org.apache.lucene.codecs.PostingsFormat
-
Добавьте форматы публикации ElasticSearch в файл temp:
$echo "org.elasticsearch.index.codec.postingsformat.BloomFilterPostingsFormat"
./TMP/META-INF/услуги/org.apache.lucene.codecs.PostingsFormat $ echo "org.elasticsearch.index.codec.postingsformat.Elasticsearch090PostingsFormat" . /tmp/META -INF/services/org.apache.lucene.codecs.PostingsFormat $ echo "org.elasticsearch.search.suggest.completion.Completion090PostingsFormat" . /tmp/META -INF/services/org.apache.lucene.codecs.PostingsFormat
-
Переустановите измененный файл обратно в банку:
$jar -uf target/luke-with-deps.jar -C tmp/META-INF/services/org.apache.lucene.codecs.PostingsFormat
-
Запустить Luke
$./Luke.sh