Skip to content
This repository has been archived by the owner on May 4, 2023. It is now read-only.

Commit

Permalink
refactor new ?analyzer= feature.
Browse files Browse the repository at this point in the history
  • Loading branch information
Robert Newson committed Nov 14, 2010
1 parent 5146600 commit 6deb664
Showing 1 changed file with 8 additions and 9 deletions.
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -126,12 +126,16 @@ public void returnSearcher(final IndexSearcher searcher)
returnReader(searcher.getIndexReader()); returnReader(searcher.getIndexReader());
} }


public Query parse(final String query, final Analyzer analyzer) throws ParseException { public Query parse(final String query, final Analyzer analyzer) throws ParseException, JSONException {
final QueryParser parser = new CustomQueryParser(Constants.VERSION, final QueryParser parser = new CustomQueryParser(Constants.VERSION,
Constants.DEFAULT_FIELD, analyzer); Constants.DEFAULT_FIELD, analyzer);
return parser.parse(query); return parser.parse(query);
} }


public Analyzer analyzer(final String analyzerName) throws JSONException {
return analyzerName == null ? this.analyzer : Analyzers.getAnalyzer(analyzerName);
}

private synchronized void close() throws IOException { private synchronized void close() throws IOException {
if (reader != null) if (reader != null)
reader.close(); reader.close();
Expand Down Expand Up @@ -469,14 +473,14 @@ public void search(final HttpServletRequest req,
return; return;
} }
for (final String queryString : getQueryStrings(req)) { for (final String queryString : getQueryStrings(req)) {
final Analyzer analyzer = getAnalyzer(req, state.analyzer); final Analyzer analyzer = state.analyzer(req.getParameter("analyzer"));
final Query q = state.parse(queryString, analyzer); final Query q = state.parse(queryString, analyzer);

final JSONObject queryRow = new JSONObject(); final JSONObject queryRow = new JSONObject();
queryRow.put("q", q.toString()); queryRow.put("q", q.toString());
if (getBooleanParameter(req, "debug")) { if (getBooleanParameter(req, "debug")) {
queryRow.put("plan", QueryPlan.toPlan(q)); queryRow.put("plan", QueryPlan.toPlan(q));
queryRow.put("analyzer", state.analyzer.getClass()); queryRow.put("analyzer", analyzer.getClass());
} }
queryRow.put("etag", etag); queryRow.put("etag", etag);
if (getBooleanParameter(req, "rewrite")) { if (getBooleanParameter(req, "rewrite")) {
Expand Down Expand Up @@ -777,11 +781,6 @@ private void init() throws IOException, JSONException {
private boolean isStaleOk(final HttpServletRequest req) { private boolean isStaleOk(final HttpServletRequest req) {
return "ok".equals(req.getParameter("stale")); return "ok".equals(req.getParameter("stale"));
} }

private Analyzer getAnalyzer(final HttpServletRequest req, final Analyzer defaultAnalyzer) throws JSONException {
final String analyzer = req.getParameter("analyzer");
return analyzer == null ? defaultAnalyzer : Analyzers.getAnalyzer(analyzer);
}


private void maybeCommit() throws IOException { private void maybeCommit() throws IOException {
if (now() - lastCommit >= getCommitInterval()) { if (now() - lastCommit >= getCommitInterval()) {
Expand Down

0 comments on commit 6deb664

Please sign in to comment.