别玩丐帮 2019-08-28 19:18 采纳率: 0%
浏览 313

关于solr存储问题,是否可以存储对象

图片说明
目前刚学solr,公司数据存储是把每个对象里面字段都拆分开写在同一级的,求问下大佬,可以以对象形式保存吗,类似于json一样,比如org_id和org_type写成这样 "orgInfo":{"org_id:1,"org_type":1}吗

  • 写回答

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模数转换器