В сценарии, ориентированном на NoSQL или документа, у вас будут фактические теги как часть вашего документа, вероятно, сохраненные в виде списка. Поскольку вы отметили этот вопрос с помощью «couchdb», я буду использовать его в качестве примера.
"после" документ в CouchDB может выглядеть следующим образом:
{
"_id": <generated>,
"question": "Question?",
"answers": [... list of answers ...],
"tags": ["mysql", "tagging", "joins", "nosql", "couchdb"]
}
Затем, чтобы создать представление заклиненного по тэгам:
{
"_id": "_design/tags",
"language": "javascript",
"views": {
"all": {
"map": "function(doc) {
emit(doc.tags, null);
}"
}
}
}
В CouchDB, вы можете выдать HTTP POST, с многократным ключи, если хотите. Пример: the documentation. Используя этот метод, вы сможете выполнять поиск по нескольким тегам.
Примечание: Установка значения, равного нулю, выше, помогает сохранить представление небольшим. Используйте include_docs=true
в вашем запросе, если вы хотите увидеть и фактические документы.