Я собираюсь хранить и индексировать значения пары ключей JSON. В идеале я бы сохранил их в постоянном поле. (Для простоты, «МАРКИ»)Lucene - пользовательский анализатор/токенизатор для индексирования значений пары ключей JSON
Пример входящего объекта JSON:
"Data": [{
"Key": "DP01",
"Value": "Excellent"
}, {
"Key": "DP02",
"Value": "Average"
}, {
"Key": "DP03",
"Value": "Negative"
}]
Объект JSON будет сериализовать и хранили, как она есть, но хотелось бы, чтобы индекс его таким образом, чтобы я мог искать в этом же поле ключ и значение. Основная идея - поиск нескольких значений в пределах одного поля Lucene.
Любые предложения о том, как структурировать индексирование? Представим, например, что я хотел бы найти, используя следующий запрос:
[GRADES: "key:DP01 UNIQUEIDasDELIMITER value:Excellent"]
Как анализатор клиент/токенизатор этого достичь?
EDIT: попытка изобразить мою цель более точно.
Подумайте об этом типичном реляционном типе структуры (для простоты).
Каждый документ является веб-сайтом.
Веб-сайт может иметь несколько изображений (и другие важные метаданные).
Каждое изображение имеет несколько наборов бесплатных свойств KeyValuePair:
{ "Key": "Scenery", "Value": "Nature" }, { "Key": "Style", "Value": "Vintage" }
Другой набор:
{ "Key": "Scenery", "Value": "Industrial" }, { "Key": "Style", "Value": "Vintage" }
Моя задача, пришедшего от подобного типа структуры и индексируют в способ, который позволяет мне строить запросы, такие как:
Сайт с изображением пейзажа: промышленные и стиль: старинные.
Возможно, я ошибаюсь, как указал Энди Пок. Любые идеи, как эффективно сгладить эти свойства?
за запрос в http://stackoverflow.com/questions/22465256/indexing-json-object-arrays-in-lucene-net/23513353?noredirect1_comment58247952_23513353: Вы, похоже, нацелены на другой способ индексирования эти данные, так что это не совсем то же самое. Как пр. этот вопрос я индексирую ключ и значение в своих собственных полях: «Data.Key», «Data.Value», который позволяет искать «Data.Key: DP01 AND Data.Value: Average» или только один из них. Проблема в том, что это в результате я приведу документ в этом случае, который, как я предполагаю, вы не хотите, это было ограничение, которое я принял в моем случае. – Jens