-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 
Author Message
 Post subject: Search with Relevance
PostPosted: Thu May 05, 2016 12:01 pm 
Newbie

Joined: Wed Mar 09, 2016 6:40 am
Posts: 4
Good Evening , Please help me


Search string: valve size 100mm bearing


1) If Iam searching for above string I should be able to get all data containing valve in first place and then size like wise, currently I am getting any data containing all 4 words

2) If iam searching for string with special characters it should be matched, say for example if I am searching for valve p/n it should be searchable

------------------------------------------------------------------------------------------------------

@Entity
@Indexed
@Table(name = "MV_SMART_SEARCH_TEXT_REP", schema = "VISION_DEV")


public class SmartSearch implements java.io.Serializable {

private String rowId;
private String recordNo;
private String erpsfd;
private String purchase;
private String descriptor;
private String locale;
private String orgnId;
private String region;
private String qualityLevel;
private String trustLevel;
private String activeStatus;

public SmartSearch() {
}

public SmartSearch(String recordNo, String erpsfd, String purchase, String descriptor, String locale, String orgnId, String region) {
this.recordNo = recordNo;
this.erpsfd = erpsfd;
this.purchase = purchase;
this.descriptor = descriptor;
this.locale = locale;
this.orgnId = orgnId;
this.region = region;
}

@Id
@Column(name = "ROW_ID", nullable = false, length = 80)
public String getRowId() {
return rowId;
}

public void setRowId(String rowId) {
this.rowId = rowId;
}

@Column(name = "RECORD_NO", nullable = false, length = 80)
@Fields({
@Field(name = "recordNo", index = Index.YES, analyze = Analyze.YES, store = Store.NO),
@Field(name = "recordNo_sort", index = Index.YES, analyze = Analyze.NO,
store = Store.NO)
})
//@Field(index = Index.YES, analyze = Analyze.YES, store = Store.NO)
public String getRecordNo() {
return this.recordNo;
}

public void setRecordNo(String recordNo) {
this.recordNo = recordNo;
}

// @Field(index = Index.YES, analyze = Analyze.YES, store = Store.NO)
@Fields({
@Field(name = "erpsfd", index = Index.YES, analyze = Analyze.YES, store = Store.NO),
@Field(name = "erpsfd_sort", index = Index.YES, analyze = Analyze.NO,
store = Store.NO)
})

@Column(name = "ERPSFD", nullable = false, length = 4000)
public String getErpsfd() {
return this.erpsfd;
}

public void setErpsfd(String erpsfd) {
this.erpsfd = erpsfd;
}

//@Field(index = Index.YES, analyze = Analyze.YES, store = Store.YES, termVector = TermVector.WITH_POSITION_OFFSETS)
//@Field(index = Index.YES, analyze = Analyze.YES, store = Store.NO)
@Fields({
@Field(name = "purchase", index = Index.YES, analyze = Analyze.YES, store = Store.NO),
@Field(name = "purchase_sort", index = Index.YES, analyze = Analyze.NO,
store = Store.NO)
})

@Column(name = "PURCHASE", nullable = false, length = 4000)
public String getPurchase() {
return this.purchase;
}

public void setPurchase(String purchase) {
this.purchase = purchase;
}

@Fields({
@Field(name = "descriptor", index = Index.YES, analyze = Analyze.YES, store = Store.NO),
@Field(name = "descriptor_sort", index = Index.YES, analyze = Analyze.NO,
store = Store.NO)
})
// @Field(index = Index.YES, analyze = Analyze.YES, store = Store.NO)
@Column(name = "CLASS", length = 4000)
@Sort

public String getDescriptor() {
return descriptor;
}

public void setDescriptor(String descriptor) {
this.descriptor = descriptor;
}

//@Field(index = Index.YES, analyze = Analyze.YES, store = Store.NO)
@Fields({
@Field(name = "locale", index = Index.YES, analyze = Analyze.YES, store = Store.NO),
@Field(name = "locale_sort", index = Index.YES, analyze = Analyze.NO,
store = Store.NO)
})

@Column(name = "LOCALE", nullable = false, length = 20)
public String getLocale() {
return this.locale;
}

public void setLocale(String locale) {
this.locale = locale;
}

@Column(name = "ORGN_ID", nullable = false)
public String getOrgnId() {
return this.orgnId;
}

public void setOrgnId(String orgnId) {
this.orgnId = orgnId;
}

@Column(name = "REGION", nullable = false, length = 80)
public String getRegion() {
return this.region;
}

public void setRegion(String region) {
this.region = region;
}
//-creatd new

// @Field(index = Index.YES, analyze = Analyze.YES, store = Store.NO)
@Fields({
@Field(name = "qualityLevel", index = Index.YES, analyze = Analyze.YES, store = Store.NO),
@Field(name = "qualityLevel_sort", index = Index.YES, analyze = Analyze.NO,
store = Store.NO)
})

@Column(name = "QUALITY_LEVEL", nullable = false, length = 80)
public String getQualityLevel() {
return qualityLevel;
}

public void setQualityLevel(String qualityLevel) {
this.qualityLevel = qualityLevel;
}

//@Field(index = Index.YES, analyze = Analyze.YES, store = Store.NO)
@Fields({
@Field(name = "trustLevel", index = Index.YES, analyze = Analyze.YES, store = Store.NO),
@Field(name = "trustLevel_sort", index = Index.YES, analyze = Analyze.NO,
store = Store.NO)
})

@Column(name = "TRUST_LEVEl", nullable = false, length = 80)
public String getTrustLevel() {
return trustLevel;
}

public void setTrustLevel(String trustLevel) {
this.trustLevel = trustLevel;
}

//@Field(index = Index.YES, analyze = Analyze.YES, store = Store.NO)
@Fields({
@Field(name = "activeStatus", index = Index.YES, analyze = Analyze.YES, store = Store.NO),
@Field(name = "activeStatus_sort", index = Index.YES, analyze = Analyze.NO,
store = Store.NO)
})
@Column(name = "ACTIVE_STATUS", nullable = false, length = 80)
public String getActiveStatus() {
return activeStatus;
}

public void setActiveStatus(String activeStatus) {
this.activeStatus = activeStatus;
}

}

dao
----
resultjsArray = new JSONArray();
fullTextSession = Search.getFullTextSession(access.getSessionFactory().getCurrentSession());
SearchFactory searchFactory = fullTextSession.getSearchFactory();
searchClass = getApplicationPropertyValue("MM_SEARCH_VIEW_NAME");

if (searchClass == null) {
searchClass = SmartSearch.class;
}

QueryBuilder b = fullTextSession.getSearchFactory()
.buildQueryBuilder().forEntity(searchClass).get();

BooleanQuery booleanQuery = new BooleanQuery();
String[] splitArray = textData.split("\\s");

int g = 0;
String searchtext = "";
PrefixQuery pfxQuery = null;
String nativeluceneQuery = "";
for (String splitArray1 : splitArray) {
luceneQuery = b.keyword().wildcard().onField("purchase").matching(splitArray1 + "*").createQuery();
booleanQuery.add(luceneQuery, BooleanClause.Occur.MUST);
}
FullTextQuery fullTextQuery = fullTextSession.createFullTextQuery(booleanQuery);
fullTextQuery.setMaxResults(10);
listitems = fullTextQuery.list();


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.