目前刚学solr,公司数据存储是把每个对象里面字段都拆分开写在同一级的,求问下大佬,可以以对象形式保存吗,类似于json一样,比如org_id和org_type写成这样 "orgInfo":{"org_id:1,"org_type":1}吗
关于solr存储问题,是否可以存储对象
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 你知我知皆知 2024-07-31 07:48关注
以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
Solr支持将实体类型作为索引来存储。这意味着你可以创建一个名为
MyEntity
的类,并使用@Field
注解定义属性。例如:
@Entity @Table(name = "my_entity") public class MyEntity { @Id private String id; // 其他属性... }
然后在你的Solr配置文件中启用这个实体类型:
<settings> <indexer> <type>my_entity</type> </indexer> </settings>
这样,当你向Solr发送HTTP请求时,它会尝试解析并处理
MyEntity
类型的实体。如果你想要像JSON那样格式化这些实体,你可以使用Java的Jackson库或第三方库(如Gson)来序列化它们。
例如,对于上面的例子,你可以这样做:
import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ApplicationContext; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @SpringBootApplication @RestController public class Application { @Autowired ApplicationContext context; ObjectMapper mapper = new ObjectMapper(); @GetMapping("/entity") public String entity(@RequestParam("id") String id) throws Exception { return mapper.writeValueAsString(context.getBean(MyEntity.class)); } }
这段代码会在URL
/entity?id=<id>
上返回包含实体类型的字符串表示。你需要根据实际情况调整bean的名称和属性。解决 无用评论 打赏 举报
悬赏问题
- ¥20 iOS绕地区网络检测
- ¥15 python验证码滑块图像识别
- ¥15 根据背景及设计要求撰写设计报告
- ¥15 QT6颜色选择对话框显示不完整
- ¥20 能提供一下思路或者代码吗
- ¥15 用twincat控制!
- ¥15 请问一下这个运行结果是怎么来的
- ¥15 单通道放大电路的工作原理
- ¥30 YOLO检测微调结果p为1
- ¥15 DS18B20内部ADC模数转换器