java/code/src/com/redhat/rhn/frontend/action/channel/PackageSearchAction.java
| 1
java/code/src/com/redhat/rhn/frontend/action/errata/ErrataSearchAction.java
| 6 +-
java/code/src/com/redhat/rhn/frontend/action/systems/SystemSearchSetupAction.java
| 1
search-server/spacewalk-search/src/config/search/rhn_search.conf
| 2
search-server/spacewalk-search/src/java/com/redhat/satellite/search/index/IndexManager.java
| 17 +++++++
search-server/spacewalk-search/src/java/com/redhat/satellite/search/index/builder/ErrataDocumentBuilder.java
| 22 +++++-----
6 files changed, 36 insertions(+), 13 deletions(-)
New commits:
commit 6f9d4be39f29357a93f83f460bb76e378a5781c5
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Wed May 4 16:53:17 2011 +0200
648640 - keep fineGrained option when changing number of custom items
diff --git a/java/code/src/com/redhat/rhn/frontend/action/channel/PackageSearchAction.java
b/java/code/src/com/redhat/rhn/frontend/action/channel/PackageSearchAction.java
index f2b4504..0b89789 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/channel/PackageSearchAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/channel/PackageSearchAction.java
@@ -253,6 +253,7 @@ public class PackageSearchAction extends RhnAction {
request.setAttribute("allChannels", allChannels);
request.setAttribute("channel_filter",
form.getString("channel_filter"));
request.setAttribute("relevant", relevantFlag ? "yes" :
"no");
+ request.setAttribute(FINE_GRAINED, fineGrained ? "yes" :
"no");
// Default where to search criteria
request.setAttribute("whereCriteria", searchCriteria);
diff --git a/java/code/src/com/redhat/rhn/frontend/action/errata/ErrataSearchAction.java
b/java/code/src/com/redhat/rhn/frontend/action/errata/ErrataSearchAction.java
index 24d7aad..44c7394 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/errata/ErrataSearchAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/errata/ErrataSearchAction.java
@@ -163,6 +163,7 @@ public class ErrataSearchAction extends RhnAction {
String search = request.getParameter("search_string");
String viewmode = request.getParameter("view_mode");
+ String fineGrained = request.getParameter(FINE_GRAINED);
List searchOptions = new ArrayList();
// setup the option list for select box (view_mode).
@@ -174,6 +175,7 @@ public class ErrataSearchAction extends RhnAction {
request.setAttribute("search_string", search);
request.setAttribute("view_mode", viewmode);
request.setAttribute("searchOptions", searchOptions);
+ request.setAttribute(FINE_GRAINED, fineGrained);
// Process the dates, default the start date to yesterday
// and end date to today.
diff --git
a/java/code/src/com/redhat/rhn/frontend/action/systems/SystemSearchSetupAction.java
b/java/code/src/com/redhat/rhn/frontend/action/systems/SystemSearchSetupAction.java
index 0e7342e..cc8eb06 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/systems/SystemSearchSetupAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/systems/SystemSearchSetupAction.java
@@ -165,6 +165,7 @@ public class SystemSearchSetupAction extends RhnAction implements
Listable {
request.setAttribute(VIEW_MODE, request.getParameter(VIEW_MODE));
request.setAttribute(SEARCH_STRING, request.getParameter(SEARCH_STRING));
request.setAttribute(WHERE_TO_SEARCH, whereToSearch);
+ request.setAttribute(FINE_GRAINED, request.getParameter(FINE_GRAINED));
if (invertResults) {
request.setAttribute(INVERT_RESULTS, "on");
commit 665963d3eb98066909fb7e6496bc90bb57b6d38f
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Mon May 2 15:54:25 2011 +0200
648640 - introduce errata analyzer for rhn-search
diff --git a/java/code/src/com/redhat/rhn/frontend/action/errata/ErrataSearchAction.java
b/java/code/src/com/redhat/rhn/frontend/action/errata/ErrataSearchAction.java
index e3cf676..24d7aad 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/errata/ErrataSearchAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/errata/ErrataSearchAction.java
@@ -569,11 +569,11 @@ public class ErrataSearchAction extends RhnAction {
query = escapeSpecialChars(query);
return "(description:(" + query + ") topic:(" + query +
") solution:(" +
query + ") notes:(" + query + ") product:(" + query +
")" +
- " advisoryName:(" + query + ") synopsis:(" + query +
"))";
+ " name:(" + query + ") synopsis:(" + query +
"))";
}
else if (OPT_ADVISORY.equals(mode)) {
query = escapeSpecialChars(query);
- return "(advisoryName:(" + query + "))";
+ return "(name:(" + query + "))";
}
else if (OPT_PKG_NAME.equals(mode)) {
// when searching the name field, we also want to include the filename
diff --git a/search-server/spacewalk-search/src/config/search/rhn_search.conf
b/search-server/spacewalk-search/src/config/search/rhn_search.conf
index 6a3cb7d..d6f0b64 100644
--- a/search-server/spacewalk-search/src/config/search/rhn_search.conf
+++ b/search-server/spacewalk-search/src/config/search/rhn_search.conf
@@ -4,7 +4,7 @@ search.max_hits_returned=500
search.connection.driver_class=oracle.jdbc.driver.OracleDriver
search.score_threshold=.10
search.system_score_threshold=.01
-search.errata_score_threshold=.20
+search.errata_score_threshold=.01
search.errata.advisory_score_threshold=.30
search.min_ngram = 1
search.max_ngram = 5
diff --git
a/search-server/spacewalk-search/src/java/com/redhat/satellite/search/index/IndexManager.java
b/search-server/spacewalk-search/src/java/com/redhat/satellite/search/index/IndexManager.java
index 58609f5..271dab6 100644
---
a/search-server/spacewalk-search/src/java/com/redhat/satellite/search/index/IndexManager.java
+++
b/search-server/spacewalk-search/src/java/com/redhat/satellite/search/index/IndexManager.java
@@ -455,6 +455,9 @@ public class IndexManager {
else if (indexName.compareTo(BuilderFactory.SERVER_TYPE) == 0) {
return getServerAnalyzer();
}
+ else if (indexName.compareTo(BuilderFactory.ERRATA_TYPE) == 0) {
+ return getErrataAnalyzer();
+ }
else if (indexName.compareTo(BuilderFactory.SNAPSHOT_TAG_TYPE) == 0) {
return getSnapshotTagAnalyzer();
}
@@ -569,7 +572,7 @@ public class IndexManager {
}
}
else if (indexName.compareTo(BuilderFactory.ERRATA_TYPE) == 0) {
- if (guessMainQueryTerm.compareTo("advisoryName") == 0) {
+ if (guessMainQueryTerm.compareTo("name") == 0) {
if (hits.score(x) < errata_advisory_score_threshold) {
if (log.isDebugEnabled()) {
log.debug("hits.score(" + x + ") is " +
hits.score(x));
@@ -738,6 +741,18 @@ public class IndexManager {
return analyzer;
}
+ private Analyzer getErrataAnalyzer() {
+ PerFieldAnalyzerWrapper analyzer = new PerFieldAnalyzerWrapper(new
+ NGramAnalyzer(min_ngram, max_ngram));
+ analyzer.addAnalyzer("advisoryName", new KeywordAnalyzer());
+ analyzer.addAnalyzer("synopsis", new StandardAnalyzer());
+ analyzer.addAnalyzer("description", new StandardAnalyzer());
+ analyzer.addAnalyzer("topic", new StandardAnalyzer());
+ analyzer.addAnalyzer("solution", new StandardAnalyzer());
+
+ return analyzer;
+ }
+
private Analyzer getSnapshotTagAnalyzer() {
PerFieldAnalyzerWrapper analyzer = new PerFieldAnalyzerWrapper(new
NGramAnalyzer(min_ngram, max_ngram));
diff --git
a/search-server/spacewalk-search/src/java/com/redhat/satellite/search/index/builder/ErrataDocumentBuilder.java
b/search-server/spacewalk-search/src/java/com/redhat/satellite/search/index/builder/ErrataDocumentBuilder.java
index 665ff51..ad5a01d 100644
---
a/search-server/spacewalk-search/src/java/com/redhat/satellite/search/index/builder/ErrataDocumentBuilder.java
+++
b/search-server/spacewalk-search/src/java/com/redhat/satellite/search/index/builder/ErrataDocumentBuilder.java
@@ -26,9 +26,9 @@ import java.util.Map;
* @version $Rev$
*/
public class ErrataDocumentBuilder implements DocumentBuilder {
-
+
// TODO: add some information about fields and their indexing states.
-
+
/**
* {@inheritDoc}
*/
@@ -36,25 +36,29 @@ public class ErrataDocumentBuilder implements DocumentBuilder {
Document doc = new Document();
doc.add(new Field("id", objId.toString(), Field.Store.YES,
Field.Index.UN_TOKENIZED));
-
for (Iterator<String> iter = metadata.keySet().iterator(); iter.hasNext();)
{
Field.Store store = Field.Store.NO;
Field.Index tokenize = Field.Index.TOKENIZED;
-
+
String name = iter.next();
String value = metadata.get(name);
-
- if (name.equals("name")) {
+
+ if (name.equals("name") || name.equals("advisoryName"))
{
store = Field.Store.YES;
}
- else if (name.equals("advisoryName")) {
- store = Field.Store.YES;
+ else if (name.equals("synopsis") ||
name.equals("description") ||
+ name.equals("topic") || name.equals("solution"))
{
+ // index, but do not store
+ }
+ else {
+ // skip - do not store or index
+ continue;
}
doc.add(new Field(name, String.valueOf(value), store,
tokenize));
- }
+ }
return doc;
}
}