Как проиндексировать существующие неиндексированные данные в riak search?

Я использую поиск Riak. В какой-то момент я удалил индекс из ведра. Добавив в корзину несколько новых объектов, я снова включил индекс.

Когда я ищу по индексу, я не могу найти объекты, которые не были проиндексированы.

Как я могу проиндексировать их сейчас? Я думаю, что это решение подойдет и для других неиндексированных устаревших корзин.


person Hao    schedule 11.06.2015    source источник
comment
Это больше похоже на баг. Вы сообщили об этом?   -  person Hynek -Pichi- Vychodil    schedule 15.06.2015
comment
Я думаю, что это должно происходить так, потому что я удалил индекс, когда добавил новые объекты, которые, очевидно, не были проиндексированы.   -  person Hao    schedule 16.06.2015
comment
Когда вы добавляете индекс, он должен находиться в согласованном состоянии независимо от ваших предыдущих действий. Сделайте минимальный воспроизводимый пример и сообщите о нем.   -  person Hynek -Pichi- Vychodil    schedule 16.06.2015
comment
Я не понимаю. Индекс, например, известен. Я добавил в свойство ведра. И все объекты, вставленные в корзину, будут проиндексированы здесь. Позже я удалил знаменитый индекс из свойства (установил для search_index значение dont_index. Тогда объекты, которые я добавляю сейчас, не индексируются. Я думаю, что это разумно. Я не вижу ошибки, которую вы видите. Мой вопрос в том, как проиндексировать эти пропущенные объекты, если я хочу снова включить индекс, или даже, если я хочу перейти на другой индекс, как я могу переиндексировать все объекты в ведре.   -  person Hao    schedule 16.06.2015
comment
Так что теперь может быть несоответствие в терминологии. То, что я понимаю под index, скорее всего, отличается от вашего понимания.   -  person Hynek -Pichi- Vychodil    schedule 16.06.2015
comment
Можете ли вы написать пример кода? Я не понимаю ту часть, где вы удаляете и добавляете индекс в ведро. Индекс для каждого объекта, когда вы создаете/обновляете объект, вы можете добавить вторичный индекс. Что именно вы делаете?   -  person rorra    schedule 21.06.2015
comment
Проверьте это stackoverflow.com/questions/27389330/   -  person Andrei Mărcuţ    schedule 24.06.2015


Ответы (1)


Мое решение для этой и некоторых подобных проблем с поисковыми индексами для Bucket-Types. Я использую следующие процедуры (только в разработке) без опыта. сейчас в производстве с riak, поэтому кто-то другой должен ответить на это:

  1. удалить поисковый индекс

    riakc_pb_socket:delete_search_index(Pid, ‹‹"XXX">>, []).

  2. Переиндексировать с созданием нового индекса (в данном случае с применением значений по умолчанию)

    riakc_pb_socket:create_search_index(Pid, ‹‹"XXX">>, ‹‹"_yz_default">>, []).

после этого ваш индекс должен быть обновлен, и вам все равно не нужно менять свой код....

счастливое кодирование с erlang и riak

Канилупакс

person canislupax    schedule 11.08.2015