当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:14:00  来源:本站整理

再谈compass:集成站内搜索[Java编程]

赞助商链接



  本文“再谈compass:集成站内搜索[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

前段时间已经写了一篇关于compass的文章,相信大家对compass也已经有了一定的理解

由于近来做的项目中触及到了站内搜索,并且是基于JPA注解情势的,在网上找了好久,关于JPA集成compass的例子很少,有些也是基于 xml的,基于注解情势的甚是少,没有办法只有去compass的官网下载英文文档自己研究一下,耗费了一下正午间调试出来,集成到项目中!

在这里给大家分享下,但愿大家可以少走些弯路!

1.去官方网站下载compass的jar包,我用的的2.1版本

http://www.compass-project.org/

ProductInfo.java

Java代码

@Entity
@Searchable
public class ProductInfo implements Serializable{
  private static final long serialVersionUID = -8860864584425256200L;
  private Integer id;
  /** 货号 **/
  private String code;
  /** 产品名称 **/
  private String name;
  /** 产品范例 **/
  private ProductType type;
  /** 产品款式 **/
  private Set<ProductStyle> styles = new HashSet<ProductStyle>();

  public ProductInfo() {}

  @OneToMany(cascade={CascadeType.REMOVE,CascadeType.PERSIST}, mappedBy="product",fetch=FetchType.EAGER)
  @OrderBy("visible desc, id asc")
  @SearchableReference
  public Set<ProductStyle> getStyles() {
  return styles;
  }
  public void setStyles(Set<ProductStyle> styles) {
  this.styles = styles;
  }

  @Id @GeneratedValue
  @SearchableId 
  public Integer getId() {
  return id;
  }
  public void setId(Integer id) {
  this.id = id;
  }
  @Column(length=30)
  @SearchableProperty(index = Index.TOKENIZED, store = Store.YES)
  public String getCode() {
  return code;
  }
  public void setCode(String code) {
  this.code = code;
  }
  @Column(length=50,nullable=false)
  @SearchableProperty(index = Index.TOKENIZED, store = Store.YES)
  public String getName() {
  return name;
  }
  public void setName(String name) {
  this.name = name;
  }

  @ManyToOne(cascade=CascadeType.REFRESH,optional=false)
  @JoinColumn(name="typeid")
  @SearchableReference
  public ProductType getType() {
  return type;
  }
  public void setType(ProductType type) {
  this.type = type;
  }

  @Override
  public int hashCode() {
  final int prime = 31;
  int result = 1;
  result = prime * result + ((id == null) ? 0 : id.hashCode());
  return result;
  }
  @Override
  public boolean equals(Object obj) {
  if (this == obj)
   return true;
  if (obj == null)
   return false;
  if (getClass() != obj.getClass())
   return false;
  final ProductInfo other = (ProductInfo) obj;
  if (id == null) {
   if (other.id != null)
   return false;
  } else if (!id.equals(other.id))
   return false;
  return true;
  }
}


  以上是“再谈compass:集成站内搜索[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 再谈compass:集成站内搜索
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .