Получение профиля человека как JSON. Как я могу это сделать так, чтобы каждое значение этого документа JSON было доступно для поиска?
Не только документ json должен быть доступен для поиска. Он также должен быть запрошен как «найти всех людей, которые любят фильмы Тарантино». Я могу определить этот документ в реляционной модели с одним или несколькими отношениями. Но такой подход не позволит свободно искать текст со стороны клиента.
Есть ли лучший способ справиться с такими сценариями?
документ выглядеть следующим образом:Как сохранить поисковый и запрашиваемый json-документ в Postgres?
{
"name":"FirstN LastN",
"photo":nicephoto.jpg,
"location":"Boston, MA",
"contacts":[
{
"type":"phone",
"value":"701290012734"
},
{
"type":"email",
"value":"[email protected]"
}
],
"movies":[
{
"name":"The Godfather",
"director":"Francis Ford Coppola",
"releaseYear":"1972",
"favQuote":"I'm gonna make him an offer he can't refuse. Okay?"
},
{
"name":"Pulp Fiction",
"director":"Quentin Tarantino",
"releaseYear":"1994",
"favQuote":"Just because you are a character doesn't mean that you have character."
}
],
"school":null,
}
В подходе решения (не полный ответ, я боюсь): попробуйте полная реляционная схема плюс прямая индексация на json. – miw
Что вы подразумеваете под «прямым индексированием на json»? –
Сначала я подумал о простой полнотекстовой индексации, но это не поможет, потому что это только для естественного языка. Оказывается, postgres имеет встроенную поддержку JSON: http://www.postgresql.org/docs/9.5/static/datatype-json.html – miw