Compass入门问题:怎样查询多个表?(返回结果怎么处理)
刚开始使用Compass,所以请教下各位:如果我要根据用户输入的关键字,去查找多张表,我该怎么处理(也就是,最后的查询结果的返回值,包括对象的入参出参)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
刚开始使用Compass,所以请教下各位:如果我要根据用户输入的关键字,去查找多张表,我该怎么处理(也就是,最后的查询结果的返回值,包括对象的入参出参)?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(15)
不是的,toString之后,得到的是一个包含类名的字符串,因此通过这个字符串便可以判断是哪个类的索引了
你指的是hits.data(i).getClass().equals(Object.class);这种方式吧?
您好,compass+lucene你后来是如何做到全表查询的呢?我目前也有这个需求
回复
数据库建立多表连接的视图,然后把视图映射成hibernate实体,查询就用compass查询这个实体
你怎么解决的
其实通过反射机制来判断也可以行得通,目前我碰到一个问题,在查询中文关键字的时候,总结果记录数获取了,但是在取相应的字段的时候却报NULLPOINTEXCEPTION,请问这什么问题,(分词字段都处理过,如果NULL活着“”全部赋值为“ ”)
这个字段存储到索引里面去了吗?
一语道破天机,没有设置Store.YES!tks!
hits.data(i),toString(),你会发现玄机的,我也刚解决这个问题
嗯,问题是我在获取结果集的时候,我怎么区分这个是哪个对象的结果:
你说的这种肯定是不行的,你只能是自己去检索多个bean,然后自己进行结果集的合并。
我明白你的意思:你是说比如有个Article Bean ,另外有一个 Author Bean 这个必须建立两张表的关联关系,然后在查询的结果,只要有其中一个对象,就直接可以获取另外一个对象,这实际还是Hibernate的映射法则。我现在的需求是:多张表之间毫无关系,但是我要通过同一个关键字去检索这些表,然后返回一个结果集,供我在页面遍历
坚持使用 Compass 的后果就是得不到社区的支持,因为多数人不用它了。
不过你说的查询多张表,在 Hibernate Search 上必须做 Bean 的关联
额,我知道Compass已经年久失修了,使用的是2.4的Lucene,并不兼容3.0后的Lucene,但是Compass从一个传统的java程序员来说,还是挺好的,目前有一个项目,已经确定使用Compass,所以从时间来说,使用Hibernate的Search已经不太现实
刚开始使用 Compass 我劝你还是换了吧, Compass 已经多年未更新,改用
Hibernate Search 吧。