用于存储JSON对象的Solr字段类型是什么?

时间:2016-09-08 13:18:31

标签: json solr

我想将Json数据存储为字段的值,目前我已尝试将该字段类型保留为stringtext,这很好,但Json存储在字符串,因此双引号(")在其中进行转义,因此需要为Json对象保留哪种字段类型?

例如,假设我的字段是Thumbnail,它应该存储并显示为json对象而不是像下面的字符串

"Thumbnail": {
              "Url":    "http://www.example.com/image/481989943",
              "Height": 125,
              "Width":  "100"
          }

2 个答案:

答案 0 :(得分:6)

您可以将其存储为String。您所面临的问题 - 我假设 - 是您希望将该JSON作为Solr JSON响应中的结构返回的时间。默认情况下,Solr不知道您希望嵌入内容而不是目前

要告诉它,请尝试在 fl 参数中使用[json] document transformer

答案 1 :(得分:0)

String类型将单词/句子存储为精确字符串而不执行标记化等。通常用于存储精确匹配,例如,用于分面。

Text通常执行tokenization和二次处理(例如下限等)。当你想匹配一个句子的一个单词时,更有用。

使用文本,您可以使用solr提供的标记生成器和过滤器,以便创建更有用的标记,以便进行正确的搜索。

我建议将其存储为text

tokenizeJson数据有帮助,对搜索也有帮助。

另外,如果它是text,它的尺寸会更大,并且可能会变得更大,因此再次存储为string而不是$seconds = strtotime($_POST['date2']) - strtotime($_POST['date1']); 会很有帮助。