我有一张桌子:
id | notification_id | user_id | metadata | created_at | modified_at
--------------------------------------------------------------------
| | | | |
字段元数据包含json对象,例如:
{"transferId":100010003,
"timestamp":1401778800000,
"amount":1150,
"customerTimestamp":1401778800000,
"customerFullName":"John cusack",
"customerMsisdn":460100000003,
"customerMessage":"Test payment3",
"assignee":Bob,
"comments":this is a comment,
"currency":"SEK",
"balanced":false,
"inboxNotificationId":0}
以上json是可搜索的。这意味着可能存在对customerName = john cusack和user_id = 1234的事务元数据的请求。
我完全明白这是一个非常糟糕的设计。如果json对象容易发生变化或者将被搜索,则永远不要将它存储在RDBMS中。
我想优化架构,以便在查询数据时,不需要花费很多时间来返回结果(目前需要花费很多时间)。为此我可以想到三个选项:
哪一个是最合乎逻辑和最有益的?他们都是?请问有人请特别强调solr(因为我不知道它是如何工作的),关于为什么我应该或不应该使用它?
干杯!!
答案 0 :(得分:0)
您肯定希望将JSON平放到各个字段中。你有不同的类型(字符串,布尔值,数字等),你希望它们分开处理。然后你可以决定你做了什么,但你当然可以使用Solr做这类事情。