Wikitty-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
June 2011
- 3 participants
- 84 discussions
r1015 - in trunk/wikitty-struts/src/main: java/org/nuiton/wikitty/struts java/org/nuiton/wikitty/struts/component java/template/xhtml tld
by mfortun@users.nuiton.org 30 Jun '11
by mfortun@users.nuiton.org 30 Jun '11
30 Jun '11
Author: mfortun
Date: 2011-06-30 17:57:55 +0200 (Thu, 30 Jun 2011)
New Revision: 1015
Url: http://nuiton.org/repositories/revision/wikitty/1015
Log:
* correct bug due to new name for "name" attribut
* descfield finally not required
* disable orderBefore still need correction.
Modified:
trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/AbstractWikittyEditAction.java
trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/WikittyFieldHandler.java
trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/AbstractWikittyComponent.java
trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/WikittySelectBean.java
trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/WikittyTagBean.java
trunk/wikitty-struts/src/main/java/template/xhtml/ws-boolean.ftl
trunk/wikitty-struts/src/main/java/template/xhtml/ws-fixedselect.ftl
trunk/wikitty-struts/src/main/java/template/xhtml/ws-hidden.ftl
trunk/wikitty-struts/src/main/java/template/xhtml/ws-textarea.ftl
trunk/wikitty-struts/src/main/java/template/xhtml/ws-textfield.ftl
trunk/wikitty-struts/src/main/java/template/xhtml/ws-wikittyselect.ftl
trunk/wikitty-struts/src/main/tld/wikitty-struts.tld
Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/AbstractWikittyEditAction.java
===================================================================
--- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/AbstractWikittyEditAction.java 2011-06-30 14:51:03 UTC (rev 1014)
+++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/AbstractWikittyEditAction.java 2011-06-30 15:57:55 UTC (rev 1015)
@@ -107,13 +107,8 @@
}
+
-
-
-
- System.out.println(wikittyFieldMap);
-
-
return SUCCESS;
}
@@ -156,7 +151,7 @@
result += t;
}
} else {
- result = temp.toString();
+ result = temp.toString();
}
Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/WikittyFieldHandler.java
===================================================================
--- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/WikittyFieldHandler.java 2011-06-30 14:51:03 UTC (rev 1014)
+++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/WikittyFieldHandler.java 2011-06-30 15:57:55 UTC (rev 1015)
@@ -28,7 +28,7 @@
protected String exclude = "";
protected String order = "";
- protected Boolean orderBefore;
+ protected Boolean orderBefore = false;
protected Set<String> fieldAdded;
protected Map<String, List<String>> excludeMap;
@@ -111,7 +111,9 @@
// if order before selected and none field add, prepare the field list
// with another method
+
if (orderBefore && (fieldAdded.size() == 0)) {
+ System.out.println("chaucette");
return getFieldOrderedBefore();
}
@@ -296,8 +298,8 @@
extName).contains(fieldName));
// check if field is specifically included or if all the extention is
- boolean notIncluded = !(includeEnable
- && includeMap.containsKey(extName) && (includeMap.get(extName)
+ boolean notIncluded = includeEnable
+ && !(includeMap.containsKey(extName) && (includeMap.get(extName)
.contains("*") || includeMap.get(extName).contains(fieldName)));
// check if field allready added
boolean added = fieldAdded.contains(extName + "." + fieldName);
@@ -306,6 +308,8 @@
+ "notInclude:" + notIncluded + " exclude:" + excluded
+ " alreadyAdd:" + added);
+
+
if (excluded || notIncluded || added) {
return false;
}
Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/AbstractWikittyComponent.java
===================================================================
--- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/AbstractWikittyComponent.java 2011-06-30 14:51:03 UTC (rev 1014)
+++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/AbstractWikittyComponent.java 2011-06-30 15:57:55 UTC (rev 1015)
@@ -53,7 +53,7 @@
protected void evaluateExtraParams() {
super.evaluateExtraParams();
if ( fqFieldName !=null) {
- addParameter("fqFieldName", findValue(fqFieldName));
+ addParameter("fqFieldName", fqFieldName);
}
}
Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/WikittySelectBean.java
===================================================================
--- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/WikittySelectBean.java 2011-06-30 14:51:03 UTC (rev 1014)
+++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/WikittySelectBean.java 2011-06-30 15:57:55 UTC (rev 1015)
@@ -35,13 +35,17 @@
protected void evaluateExtraParams() {
super.evaluateExtraParams();
+
// if field defined as inclued
- if (handler.isIncluded(name)) {
+ if (handler.isIncluded(fqFieldName)) {
+
- handler.addAddedField(name);
+
+ handler.addAddedField(fqFieldName);
+
// parse extname and field name
- String[] fieldsAccess = StringUtil.split(name, ".");
+ String[] fieldsAccess = StringUtil.split(fqFieldName, ".");
// add parametters to be use by the template
addParameter("included", true);
addParameter(
@@ -75,7 +79,7 @@
String[] descTable = StringUtil.split(descriptorIt,
".");
- desc += wiki.getFieldAsString(descTable[0],
+ desc += wiki.getFieldAsWikitty(descTable[0],
descTable[1]);
}
}
Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/WikittyTagBean.java
===================================================================
--- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/WikittyTagBean.java 2011-06-30 14:51:03 UTC (rev 1014)
+++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/WikittyTagBean.java 2011-06-30 15:57:55 UTC (rev 1015)
@@ -109,6 +109,7 @@
log.info("add wikitty fields to the parametters");
addParameter("wikittyfields", handler.getWikittyField());
+
}
public String getDefaultOpenTemplate() {
Modified: trunk/wikitty-struts/src/main/java/template/xhtml/ws-boolean.ftl
===================================================================
--- trunk/wikitty-struts/src/main/java/template/xhtml/ws-boolean.ftl 2011-06-30 14:51:03 UTC (rev 1014)
+++ trunk/wikitty-struts/src/main/java/template/xhtml/ws-boolean.ftl 2011-06-30 15:57:55 UTC (rev 1015)
@@ -1,5 +1,5 @@
<#if parameters.included?? && parameters.included==true >
-${parameters.label} : <input type="checkbox" name="${parameters.name}" value="true" <#t/>
+${parameters.label} : <input type="checkbox" name="${parameters.fqFieldName}" value="true" <#t/>
<#if aKey.value=="true" > <#t/>
checked='true'<#t/>
</#if>
Modified: trunk/wikitty-struts/src/main/java/template/xhtml/ws-fixedselect.ftl
===================================================================
--- trunk/wikitty-struts/src/main/java/template/xhtml/ws-fixedselect.ftl 2011-06-30 14:51:03 UTC (rev 1014)
+++ trunk/wikitty-struts/src/main/java/template/xhtml/ws-fixedselect.ftl 2011-06-30 15:57:55 UTC (rev 1015)
@@ -1,5 +1,5 @@
<#if parameters.included?? && parameters.included==true >
-${parameters.label} :<select name="${parameters.name}" size="1">
+${parameters.label} :<select name="${parameters.fqFieldName}" size="1">
<#assign optionKeys = parameters.fixvalues><#t/>
<#list optionKeys as optionKey><#t/>
<option value="${optionKey.valeur}" <#t/>
Modified: trunk/wikitty-struts/src/main/java/template/xhtml/ws-hidden.ftl
===================================================================
--- trunk/wikitty-struts/src/main/java/template/xhtml/ws-hidden.ftl 2011-06-30 14:51:03 UTC (rev 1014)
+++ trunk/wikitty-struts/src/main/java/template/xhtml/ws-hidden.ftl 2011-06-30 15:57:55 UTC (rev 1015)
@@ -1,3 +1,3 @@
<#if parameters.included?? && parameters.included==true >
-<input type="hidden" name="${parameters.name}" value="${parameters.value}" /><#t/>
+<input type="hidden" name="${parameters.fqFieldName}" value="${parameters.value}" /><#t/>
</#if>
\ No newline at end of file
Modified: trunk/wikitty-struts/src/main/java/template/xhtml/ws-textarea.ftl
===================================================================
--- trunk/wikitty-struts/src/main/java/template/xhtml/ws-textarea.ftl 2011-06-30 14:51:03 UTC (rev 1014)
+++ trunk/wikitty-struts/src/main/java/template/xhtml/ws-textarea.ftl 2011-06-30 15:57:55 UTC (rev 1015)
@@ -1,3 +1,3 @@
<#if parameters.included?? && parameters.included==true >
-${parameters.label} : <textarea id="${parameters.name}" cols="80" rows="20" name="${parameters.name}">${parameters.value}</textarea><#t/>
+${parameters.label} : <textarea id="${parameters.fqFieldName}" cols="80" rows="20" name="${parameters.fqFieldName}">${parameters.value}</textarea><#t/>
</#if><#t/>
\ No newline at end of file
Modified: trunk/wikitty-struts/src/main/java/template/xhtml/ws-textfield.ftl
===================================================================
--- trunk/wikitty-struts/src/main/java/template/xhtml/ws-textfield.ftl 2011-06-30 14:51:03 UTC (rev 1014)
+++ trunk/wikitty-struts/src/main/java/template/xhtml/ws-textfield.ftl 2011-06-30 15:57:55 UTC (rev 1015)
@@ -1,3 +1,3 @@
<#if parameters.included?? && parameters.included==true >
-${parameters.label} : <input type="text" name="${parameters.name}" value="${parameters.value}" ><#t/>
+${parameters.label} : <input type="text" name="${parameters.fqFieldName}" value="${parameters.value}" ><#t/>
</#if><#t/>
\ No newline at end of file
Modified: trunk/wikitty-struts/src/main/java/template/xhtml/ws-wikittyselect.ftl
===================================================================
--- trunk/wikitty-struts/src/main/java/template/xhtml/ws-wikittyselect.ftl 2011-06-30 14:51:03 UTC (rev 1014)
+++ trunk/wikitty-struts/src/main/java/template/xhtml/ws-wikittyselect.ftl 2011-06-30 15:57:55 UTC (rev 1015)
@@ -1,5 +1,5 @@
<#if parameters.included?? && parameters.included==true >
-${parameters.label} :<select name="${parameters.name}" size="1">
+${parameters.label} :<select name="${parameters.fqFieldName}" size="1">
<#assign optionKeys = parameters.wikittiesvalues>
<#list optionKeys as optionKey>
<option value="${optionKey.valeur}"<#t/>
Modified: trunk/wikitty-struts/src/main/tld/wikitty-struts.tld
===================================================================
--- trunk/wikitty-struts/src/main/tld/wikitty-struts.tld 2011-06-30 14:51:03 UTC (rev 1014)
+++ trunk/wikitty-struts/src/main/tld/wikitty-struts.tld 2011-06-30 15:57:55 UTC (rev 1015)
@@ -85,9 +85,8 @@
</attribute>
<attribute>
<description><![CDATA[if subtype == wikitty, use the name of the descfield of the wikitties as a description value for select's option]]></description>
- <name>descfields</name>
+ <name>descfield</name>
<rtexprvalue>true</rtexprvalue>
- <required>true</required>
</attribute>
<attribute>
<description><![CDATA[the name of the field that have to be specialize]]></description>
1
0
r1014 - trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene
by echatellier@users.nuiton.org 30 Jun '11
by echatellier@users.nuiton.org 30 Jun '11
30 Jun '11
Author: echatellier
Date: 2011-06-30 16:51:03 +0200 (Thu, 30 Jun 2011)
New Revision: 1014
Url: http://nuiton.org/repositories/revision/wikitty/1014
Log:
Correction de la restriction not (s'ecrit : tout sauf la restriction du not)
Modified:
trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/Restriction2Lucene.java
Modified: trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/Restriction2Lucene.java
===================================================================
--- trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/Restriction2Lucene.java 2011-06-30 14:29:20 UTC (rev 1013)
+++ trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/Restriction2Lucene.java 2011-06-30 14:51:03 UTC (rev 1014)
@@ -33,6 +33,7 @@
import org.apache.lucene.search.BooleanClause;
import org.apache.lucene.search.BooleanClause.Occur;
import org.apache.lucene.search.BooleanQuery;
+import org.apache.lucene.search.MatchAllDocsQuery;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.search.TermRangeQuery;
@@ -314,9 +315,9 @@
// TermRangeQuery query = new TermRangeQuery(fieldName, value, "*", true, true);
BooleanQuery query = new BooleanQuery();
- query.add(new TermQuery(new Term(fieldName, "*")), BooleanClause.Occur.MUST);
+ query.add(new TermQuery(new Term(fieldName, "*")), Occur.MUST);
TermRangeQuery rangeQuery = new TermRangeQuery(fieldName, "*", value, true, true);
- query.add(rangeQuery, BooleanClause.Occur.MUST_NOT);
+ query.add(rangeQuery, Occur.MUST_NOT);
return query;
}
@@ -333,9 +334,9 @@
//TermRangeQuery query = new TermRangeQuery(fieldName, value, "*", false, false);
BooleanQuery query = new BooleanQuery();
- query.add(new TermQuery(new Term(fieldName, "*")), BooleanClause.Occur.MUST);
+ query.add(new TermQuery(new Term(fieldName, "*")), Occur.MUST);
TermRangeQuery rangeQuery = new TermRangeQuery(fieldName, "*", value, false, false);
- query.add(rangeQuery, BooleanClause.Occur.MUST_NOT);
+ query.add(rangeQuery, Occur.MUST_NOT);
return query;
}
@@ -387,7 +388,8 @@
Term term = new Term(field, restriction.getValue());
TermQuery query = new TermQuery(term);
BooleanQuery bquery = new BooleanQuery();
- bquery.add(query, BooleanClause.Occur.MUST_NOT);
+ bquery.add(new MatchAllDocsQuery(), Occur.MUST);
+ bquery.add(query, Occur.MUST_NOT);
return bquery;
}
@@ -405,7 +407,7 @@
BooleanQuery query = new BooleanQuery();
for (Restriction restriction : or.getRestrictions()) {
Query subQuery = toLucene(restriction);
- query.add(subQuery, BooleanClause.Occur.SHOULD);
+ query.add(subQuery, Occur.SHOULD);
}
return query;
}
@@ -424,31 +426,31 @@
BooleanQuery query = new BooleanQuery();
for (Restriction restriction : and.getRestrictions()) {
Query subQuery = toLucene(restriction);
- query.add(subQuery, BooleanClause.Occur.MUST);
+ query.add(subQuery, Occur.MUST);
}
return query;
}
protected Query true2Lucene() {
// *:*
- Query query = new TermQuery(new Term("*", "*"));
+ Query query = new MatchAllDocsQuery();
return query;
}
protected Query false2Lucene() {
// *:* - *:*
BooleanQuery query = new BooleanQuery();
- query.add(true2Lucene(), BooleanClause.Occur.SHOULD);
- query.add(true2Lucene(), BooleanClause.Occur.MUST_NOT);
+ query.add(new MatchAllDocsQuery(), Occur.SHOULD);
+ query.add(new MatchAllDocsQuery(), Occur.MUST_NOT);
return query;
}
protected Query not2Lucene(Not not) {
// *:* - *:*
BooleanQuery query = new BooleanQuery();
- query.add(true2Lucene(), BooleanClause.Occur.SHOULD);
+ query.add(new MatchAllDocsQuery(), Occur.SHOULD);
Query subQuery = toLucene(not.getRestriction());
- query.add(subQuery, BooleanClause.Occur.MUST_NOT);
+ query.add(subQuery, Occur.MUST_NOT);
return query;
}
}
1
0
r1013 - in trunk/wikitty-lucene/src: main/java/org/nuiton/wikitty/storage/lucene test/java/org/nuiton/wikitty/storage/lucene
by echatellier@users.nuiton.org 30 Jun '11
by echatellier@users.nuiton.org 30 Jun '11
30 Jun '11
Author: echatellier
Date: 2011-06-30 16:29:20 +0200 (Thu, 30 Jun 2011)
New Revision: 1013
Url: http://nuiton.org/repositories/revision/wikitty/1013
Log:
Implementation like, unlike et test unitaires
Modified:
trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/Restriction2Lucene.java
trunk/wikitty-lucene/src/test/java/org/nuiton/wikitty/storage/lucene/WikittySearchEngineLuceneTest.java
Modified: trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/Restriction2Lucene.java
===================================================================
--- trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/Restriction2Lucene.java 2011-06-30 14:04:11 UTC (rev 1012)
+++ trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/Restriction2Lucene.java 2011-06-30 14:29:20 UTC (rev 1013)
@@ -31,6 +31,7 @@
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.BooleanClause;
+import org.apache.lucene.search.BooleanClause.Occur;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.TermQuery;
@@ -227,15 +228,27 @@
* @return
*/
protected Query unlike2Lucene(Unlike restriction) {
- throw new NotImplementedException("Not yet implemented");
+ String field = element2Lucene(restriction.getElement(), true);
+ Term term = new Term(field, restriction.getValue());
+ TermQuery query = new TermQuery(term);
+ BooleanQuery bQuery = new BooleanQuery();
+ bQuery.add(query, Occur.MUST_NOT);
+ return bQuery;
}
/**
- * @param restriction
- * @return
+ * Like operator.
+ *
+ * @param restriction restriction
+ * @return lucene query
+ * @throws ParseException
*/
- protected Query like2Lucene(Like restriction) {
- throw new NotImplementedException("Not yet implemented");
+ protected Query like2Lucene(Like restriction) throws ParseException {
+ String field = element2Lucene(restriction.getElement(), true);
+ // il y a seulement besoin d'analyser la value
+ // pour la tokeniser
+ Query query = parser.parse(field + ":" + restriction.getValue());
+ return query;
}
/**
@@ -243,7 +256,10 @@
* @return
*/
protected Query end2Lucene(EndsWith restriction) {
- throw new NotImplementedException("Not yet implemented");
+ String field = element2Lucene(restriction.getElement());
+ Term term = new Term(field, "*" + restriction.getValue());
+ TermQuery query = new TermQuery(term);
+ return query;
}
/**
@@ -251,7 +267,10 @@
* @return
*/
protected Query start2Lucene(StartsWith restriction) {
- throw new NotImplementedException("Not yet implemented");
+ String field = element2Lucene(restriction.getElement());
+ Term term = new Term(field, restriction.getValue() + "*");
+ TermQuery query = new TermQuery(term);
+ return query;
}
/**
Modified: trunk/wikitty-lucene/src/test/java/org/nuiton/wikitty/storage/lucene/WikittySearchEngineLuceneTest.java
===================================================================
--- trunk/wikitty-lucene/src/test/java/org/nuiton/wikitty/storage/lucene/WikittySearchEngineLuceneTest.java 2011-06-30 14:04:11 UTC (rev 1012)
+++ trunk/wikitty-lucene/src/test/java/org/nuiton/wikitty/storage/lucene/WikittySearchEngineLuceneTest.java 2011-06-30 14:29:20 UTC (rev 1013)
@@ -481,4 +481,30 @@
}
}
}
+
+ /**
+ * Test des operateur speciaux sur les champs analyzés.
+ */
+ @Test
+ public void testLuceneOperatorAnalyzed() {
+ WikittyTreeNode myLabel1 = new WikittyTreeNodeImpl();
+ myLabel1.setName("ApPlE");
+
+ proxy.store(myLabel1);
+
+ // keyword
+ Criteria criteria = Search.query().keyword("aPpLe").criteria();
+ PagedResult<Wikitty> result = proxy.findAllByCriteria(criteria);
+ Assert.assertEquals(1, result.getNumFound());
+
+ // equals qui ne retourne rien
+ criteria = Search.query().eq(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME,"aPpLe").criteria();
+ result = proxy.findAllByCriteria(criteria);
+ Assert.assertEquals(0, result.getNumFound());
+
+ // like
+ criteria = Search.query().like(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME,"aPpLe").criteria();
+ result = proxy.findAllByCriteria(criteria);
+ Assert.assertEquals(1, result.getNumFound());
+ }
}
1
0
r1012 - trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene
by echatellier@users.nuiton.org 30 Jun '11
by echatellier@users.nuiton.org 30 Jun '11
30 Jun '11
Author: echatellier
Date: 2011-06-30 16:04:11 +0200 (Thu, 30 Jun 2011)
New Revision: 1012
Url: http://nuiton.org/repositories/revision/wikitty/1012
Log:
Facet names must be lucene ones instead of wikitty's and result facets name must be reset to wikitty's ones.
Modified:
trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/LuceneUtil.java
trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/WikittySearchEngineLucene.java
Modified: trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/LuceneUtil.java
===================================================================
--- trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/LuceneUtil.java 2011-06-30 14:02:02 UTC (rev 1011)
+++ trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/LuceneUtil.java 2011-06-30 14:04:11 UTC (rev 1012)
@@ -52,12 +52,12 @@
/** to use log facility, just put in your code: log.info(\"...\"); */
final static private Log log = LogFactory.getLog(LuceneUtil.class);
- /*
+ /**
* Get field name used in lucene storage for a field name in query.
*
* @param fieldName field name to convert
* @return field name in lucene
- *
+ */
public static String getLuceneFieldName(String fieldName) {
String result;
if (Element.ELT_ID.equals(fieldName)) {
@@ -68,7 +68,25 @@
result = fieldName;
}
return result;
- }*/
+ }
+
+ /**
+ * Get field name used in lucene storage for a field name in query.
+ *
+ * @param fieldName field name to convert
+ * @return field name in lucene
+ */
+ public static String getWikittyFieldName(String fieldName) {
+ String result;
+ if (WikittyLuceneConstants.LUCENE_ID.equals(fieldName)) {
+ result = Element.ELT_ID;
+ } else if (WikittyLuceneConstants.LUCENE_EXTENSIONS.equals(fieldName)) {
+ result = Element.ELT_EXTENSION;
+ } else {
+ result = fieldName;
+ }
+ return result;
+ }
/*
* get value of field in Document, field must have only one value
Modified: trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/WikittySearchEngineLucene.java
===================================================================
--- trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/WikittySearchEngineLucene.java 2011-06-30 14:02:02 UTC (rev 1011)
+++ trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/WikittySearchEngineLucene.java 2011-06-30 14:04:11 UTC (rev 1012)
@@ -896,7 +896,8 @@
for (String sort : sortAscending) {
//String tranform = fieldModifier.convertToSolr(transaction, sort);
//tranform += WikittySolrConstant.SUFFIX_SORTABLE;
- SortField sortField = new SortField(sort, SortField.STRING);
+ String luceneField = LuceneUtil.getLuceneFieldName(sort);
+ SortField sortField = new SortField(luceneField, SortField.STRING);
sortFields.add(sortField);
}
}
@@ -905,7 +906,8 @@
for (String sort : sortDescending) {
//String tranform = fieldModifier.convertToSolr(transaction, sort);
//tranform += WikittySolrConstant.SUFFIX_SORTABLE;
- SortField sortField = new SortField(sort, SortField.STRING, true);
+ String luceneField = LuceneUtil.getLuceneFieldName(sort);
+ SortField sortField = new SortField(luceneField, SortField.STRING, true);
sortFields.add(sortField);
}
}
@@ -922,7 +924,8 @@
List<FacetHandler<?>> facetHandlers = new ArrayList<FacetHandler<?>>();
if (facetFields != null) {
for (String facetField : facetFields) {
- MultiValueFacetHandler facetHandler = new MultiValueFacetHandler(facetField);
+ String luceneField = LuceneUtil.getLuceneFieldName(facetField);
+ MultiValueFacetHandler facetHandler = new MultiValueFacetHandler(luceneField);
facetHandlers.add(facetHandler);
}
}
@@ -948,7 +951,8 @@
FacetSpec facetSpec = new FacetSpec();
//facetSpec.setOrderBy(FacetSortSpec.OrderHitsDesc);
facetSpec.setMinHitCount(1);
- br.setFacetSpec(facetField, facetSpec);
+ String luceneField = LuceneUtil.getLuceneFieldName(facetField);
+ br.setFacetSpec(luceneField, facetSpec);
}
}
@@ -984,16 +988,17 @@
for (Map.Entry<String, FacetAccessible> resultFacet : resultFacets.entrySet()) {
String facetName = resultFacet.getKey();
FacetAccessible facetValue = resultFacet.getValue();
-
+ String wikittyField = LuceneUtil.getWikittyFieldName(facetName);
+
List<FacetTopic> facetTopics = new ArrayList<FacetTopic>();
List<BrowseFacet> browseFacets = facetValue.getFacets();
for (BrowseFacet browseFacet : browseFacets) {
- FacetTopic topic = new FacetTopic(facetName, browseFacet.getValue(),
+ FacetTopic topic = new FacetTopic(wikittyField, browseFacet.getValue(),
browseFacet.getFacetValueHitCount());
facetTopics.add(topic);
}
- pagedResultFacets.put(facetName, facetTopics);
+ pagedResultFacets.put(wikittyField, facetTopics);
// clean up. This is to free up the resources used in facet counting
// and this is new for bobo 2.5. Very important to call.
1
0
r1011 - in trunk/wikitty-struts/src/main: java/org/nuiton/wikitty/struts java/org/nuiton/wikitty/struts/component java/org/nuiton/wikitty/struts/tag tld
by mfortun@users.nuiton.org 30 Jun '11
by mfortun@users.nuiton.org 30 Jun '11
30 Jun '11
Author: mfortun
Date: 2011-06-30 16:02:02 +0200 (Thu, 30 Jun 2011)
New Revision: 1011
Url: http://nuiton.org/repositories/revision/wikitty/1011
Log:
* change name attribut to fqFieldName
* change criteria string nature to object criteria
Added:
trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/AbstractWikittyTag.java
Modified:
trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/WikittyFieldHandler.java
trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/AbstractWikittyComponent.java
trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/BooleanBean.java
trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/FixedSelectBean.java
trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/HiddenBean.java
trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/TextAreaBean.java
trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/TextFieldBean.java
trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/WikittySelectBean.java
trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/BooleanTag.java
trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/FixedSelectTag.java
trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/HiddenTag.java
trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/TextAreaTag.java
trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/TextFieldTag.java
trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/WikittySelectTag.java
trunk/wikitty-struts/src/main/tld/wikitty-struts.tld
Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/WikittyFieldHandler.java
===================================================================
--- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/WikittyFieldHandler.java 2011-06-30 13:34:18 UTC (rev 1010)
+++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/WikittyFieldHandler.java 2011-06-30 14:02:02 UTC (rev 1011)
@@ -191,6 +191,8 @@
List<ExtensionFieldStrutsBean> result = new LinkedList<ExtensionFieldStrutsBean>();
+ log.debug("orderBefore enable with" + order);
+
String[] fieldOrder = StringUtil.split(order, ",");
/*
Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/AbstractWikittyComponent.java
===================================================================
--- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/AbstractWikittyComponent.java 2011-06-30 13:34:18 UTC (rev 1010)
+++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/AbstractWikittyComponent.java 2011-06-30 14:02:02 UTC (rev 1011)
@@ -2,40 +2,59 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.components.ClosingUIBean;
-
import org.nuiton.wikitty.struts.WikittyFieldHandler;
import com.opensymphony.xwork2.util.ValueStack;
public abstract class AbstractWikittyComponent extends ClosingUIBean {
-
+
/** to use log facility, just put in your code: log.info(\"...\"); */
- final static private Log log = LogFactory.getLog(AbstractWikittyComponent.class);
-
+ final static private Log log = LogFactory
+ .getLog(AbstractWikittyComponent.class);
+
protected WikittyFieldHandler handler;
+ protected String fqFieldName;
protected AbstractWikittyComponent(ValueStack stack,
HttpServletRequest request, HttpServletResponse response) {
super(stack, request, response);
- handler = (WikittyFieldHandler) stack.getContext()
- .get(WikittyTagBean.WIKITTY_STACK_KEY);
+ handler = (WikittyFieldHandler) stack.getContext().get(
+ WikittyTagBean.WIKITTY_STACK_KEY);
if (handler == null) {
- log.info("Handler not found in the stack");
- // TODO mfortun-2011-06-29 throw exception if handler not in the stack
+ log.info("Handler not found in the stack");
+ // TODO mfortun-2011-06-29 throw exception if handler not in the
+ // stack
}
-
-
+
}
-
-
-
+ public WikittyFieldHandler getHandler() {
+ return handler;
+ }
+ public void setHandler(WikittyFieldHandler handler) {
+ this.handler = handler;
+ }
+ public String getFqFieldName() {
+ return fqFieldName;
+ }
+
+ public void setFqFieldName(String fqFieldName) {
+ this.fqFieldName = fqFieldName;
+ }
+
+ @Override
+ protected void evaluateExtraParams() {
+ super.evaluateExtraParams();
+ if ( fqFieldName !=null) {
+ addParameter("fqFieldName", findValue(fqFieldName));
+ }
+ }
+
}
Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/BooleanBean.java
===================================================================
--- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/BooleanBean.java 2011-06-30 13:34:18 UTC (rev 1010)
+++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/BooleanBean.java 2011-06-30 14:02:02 UTC (rev 1011)
@@ -28,11 +28,11 @@
protected void evaluateExtraParams() {
super.evaluateExtraParams();
- handler.addAddedField(name);
+ handler.addAddedField(fqFieldName);
// if field defined as inclued
- if (handler.isIncluded(name)) {
+ if (handler.isIncluded(fqFieldName)) {
// parse extname and field name
- String[] fieldsAccess = StringUtil.split(name, ".");
+ String[] fieldsAccess = StringUtil.split(fqFieldName, ".");
// add parametters to be use by the template
addParameter(
"included",true);
Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/FixedSelectBean.java
===================================================================
--- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/FixedSelectBean.java 2011-06-30 13:34:18 UTC (rev 1010)
+++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/FixedSelectBean.java 2011-06-30 14:02:02 UTC (rev 1011)
@@ -32,10 +32,10 @@
super.evaluateExtraParams();
// if field defined as inclued
- if (handler.isIncluded(name)) {
- handler.addAddedField(name);
+ if (handler.isIncluded(fqFieldName)) {
+ handler.addAddedField(fqFieldName);
// parse extname and field name
- String[] fieldsAccess = StringUtil.split(name, ".");
+ String[] fieldsAccess = StringUtil.split(fqFieldName, ".");
// add parametters to be use by the template
addParameter("included", true);
addParameter(
Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/HiddenBean.java
===================================================================
--- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/HiddenBean.java 2011-06-30 13:34:18 UTC (rev 1010)
+++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/HiddenBean.java 2011-06-30 14:02:02 UTC (rev 1011)
@@ -28,10 +28,10 @@
super.evaluateExtraParams();
// if field defined as inclued
- if (handler.isIncluded(name)) {
- handler.addAddedField(name);
+ if (handler.isIncluded(fqFieldName)) {
+ handler.addAddedField(fqFieldName);
// parse extname and field name
- String[] fieldsAccess = StringUtil.split(name, ".");
+ String[] fieldsAccess = StringUtil.split(fqFieldName, ".");
// add parametters to be use by the template
addParameter("included", true);
addParameter(
Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/TextAreaBean.java
===================================================================
--- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/TextAreaBean.java 2011-06-30 13:34:18 UTC (rev 1010)
+++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/TextAreaBean.java 2011-06-30 14:02:02 UTC (rev 1011)
@@ -27,10 +27,10 @@
super.evaluateExtraParams();
// if field defined as inclued
- if (handler.isIncluded(name)) {
- handler.addAddedField(name);
+ if (handler.isIncluded(fqFieldName)) {
+ handler.addAddedField(fqFieldName);
// parse extname and field name
- String[] fieldsAccess = StringUtil.split(name, ".");
+ String[] fieldsAccess = StringUtil.split(fqFieldName, ".");
// add parametters to be use by the template
addParameter("included", true);
addParameter(
Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/TextFieldBean.java
===================================================================
--- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/TextFieldBean.java 2011-06-30 13:34:18 UTC (rev 1010)
+++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/TextFieldBean.java 2011-06-30 14:02:02 UTC (rev 1011)
@@ -26,11 +26,11 @@
protected void evaluateExtraParams() {
super.evaluateExtraParams();
- handler.addAddedField(name);
+ handler.addAddedField(fqFieldName);
// if field defined as inclued
- if (handler.isIncluded(name)) {
+ if (handler.isIncluded(fqFieldName)) {
// parse extname and field name
- String[] fieldsAccess = StringUtil.split(name, ".");
+ String[] fieldsAccess = StringUtil.split(fqFieldName, ".");
// add parametters to be use by the template
addParameter("included", true);
addParameter(
Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/WikittySelectBean.java
===================================================================
--- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/WikittySelectBean.java 2011-06-30 13:34:18 UTC (rev 1010)
+++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/WikittySelectBean.java 2011-06-30 14:02:02 UTC (rev 1011)
@@ -11,7 +11,6 @@
import org.nuiton.wikitty.entities.Wikitty;
import org.nuiton.wikitty.search.Criteria;
import org.nuiton.wikitty.search.PagedResult;
-import org.nuiton.wikitty.search.Search;
import org.nuiton.wikitty.struts.Option;
import com.opensymphony.xwork2.util.ValueStack;
@@ -24,7 +23,7 @@
public static final String OPEN_TEMPLATE = "ws-wikittyselect";
public static final String TEMPLATE = "ws-wikittyselect-close";
- protected String criteria;
+ protected Criteria criteria;
protected String descfield;
public WikittySelectBean(ValueStack stack, HttpServletRequest request,
@@ -52,9 +51,7 @@
List<Option> fixlist = new LinkedList<Option>();
- // search for the wikitty with the criteria
- Criteria criteria = Search.query().keyword(this.criteria)
- .criteria();
+ // search for the wikitty with the criteria
PagedResult<Wikitty> wikitties = handler.getProxy()
.findAllByCriteria(criteria);
@@ -98,11 +95,11 @@
return TEMPLATE;
}
- public String getCriteria() {
+ public Criteria getCriteria() {
return criteria;
}
- public void setCriteria(String criteria) {
+ public void setCriteria(Criteria criteria) {
this.criteria = criteria;
}
Added: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/AbstractWikittyTag.java
===================================================================
--- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/AbstractWikittyTag.java (rev 0)
+++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/AbstractWikittyTag.java 2011-06-30 14:02:02 UTC (rev 1011)
@@ -0,0 +1,30 @@
+package org.nuiton.wikitty.struts.tag;
+
+import org.apache.struts2.views.jsp.ui.AbstractClosingTag;
+import org.nuiton.wikitty.struts.component.AbstractWikittyComponent;
+
+public abstract class AbstractWikittyTag extends AbstractClosingTag {
+
+
+ private static final long serialVersionUID = -3401870606519882751L;
+ protected String fqFieldName;
+
+ public String getFqFieldName() {
+ return fqFieldName;
+ }
+
+ public void setFqFieldName(String fqFieldName) {
+ this.fqFieldName = fqFieldName;
+ }
+
+
+ @Override
+ protected void populateParams() {
+ super.populateParams();
+ AbstractWikittyComponent wikittyComponent = (AbstractWikittyComponent) component;
+ wikittyComponent.setFqFieldName(fqFieldName);
+
+ }
+
+
+}
Property changes on: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/AbstractWikittyTag.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/BooleanTag.java
===================================================================
--- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/BooleanTag.java 2011-06-30 13:34:18 UTC (rev 1010)
+++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/BooleanTag.java 2011-06-30 14:02:02 UTC (rev 1011)
@@ -9,7 +9,7 @@
import com.opensymphony.xwork2.util.ValueStack;
-public class BooleanTag extends AbstractClosingTag {
+public class BooleanTag extends AbstractWikittyTag {
/**
*
Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/FixedSelectTag.java
===================================================================
--- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/FixedSelectTag.java 2011-06-30 13:34:18 UTC (rev 1010)
+++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/FixedSelectTag.java 2011-06-30 14:02:02 UTC (rev 1011)
@@ -9,7 +9,7 @@
import com.opensymphony.xwork2.util.ValueStack;
-public class FixedSelectTag extends AbstractClosingTag {
+public class FixedSelectTag extends AbstractWikittyTag {
/**
*
Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/HiddenTag.java
===================================================================
--- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/HiddenTag.java 2011-06-30 13:34:18 UTC (rev 1010)
+++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/HiddenTag.java 2011-06-30 14:02:02 UTC (rev 1011)
@@ -9,7 +9,7 @@
import com.opensymphony.xwork2.util.ValueStack;
-public class HiddenTag extends AbstractClosingTag {
+public class HiddenTag extends AbstractWikittyTag {
/**
*
*/
Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/TextAreaTag.java
===================================================================
--- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/TextAreaTag.java 2011-06-30 13:34:18 UTC (rev 1010)
+++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/TextAreaTag.java 2011-06-30 14:02:02 UTC (rev 1011)
@@ -9,7 +9,7 @@
import com.opensymphony.xwork2.util.ValueStack;
-public class TextAreaTag extends AbstractClosingTag{
+public class TextAreaTag extends AbstractWikittyTag{
/**
*
*/
Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/TextFieldTag.java
===================================================================
--- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/TextFieldTag.java 2011-06-30 13:34:18 UTC (rev 1010)
+++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/TextFieldTag.java 2011-06-30 14:02:02 UTC (rev 1011)
@@ -9,7 +9,7 @@
import com.opensymphony.xwork2.util.ValueStack;
-public class TextFieldTag extends AbstractClosingTag {
+public class TextFieldTag extends AbstractWikittyTag {
/**
*
*/
Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/WikittySelectTag.java
===================================================================
--- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/WikittySelectTag.java 2011-06-30 13:34:18 UTC (rev 1010)
+++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/WikittySelectTag.java 2011-06-30 14:02:02 UTC (rev 1011)
@@ -6,17 +6,18 @@
import org.apache.struts2.components.Component;
import org.apache.struts2.views.jsp.ui.AbstractClosingTag;
+import org.nuiton.wikitty.search.Criteria;
import org.nuiton.wikitty.struts.component.WikittySelectBean;
import com.opensymphony.xwork2.util.ValueStack;
-public class WikittySelectTag extends AbstractClosingTag {
+public class WikittySelectTag extends AbstractWikittyTag {
/**
*
*/
private static final long serialVersionUID = 2807198744532780915L;
- protected String criteria;
+ protected Criteria criteria;
protected String descfield;
@Override
@@ -38,11 +39,11 @@
}
- public String getCriteria() {
+ public Criteria getCriteria() {
return criteria;
}
- public void setCriteria(String criteria) {
+ public void setCriteria(Criteria criteria) {
this.criteria = criteria;
}
Modified: trunk/wikitty-struts/src/main/tld/wikitty-struts.tld
===================================================================
--- trunk/wikitty-struts/src/main/tld/wikitty-struts.tld 2011-06-30 13:34:18 UTC (rev 1010)
+++ trunk/wikitty-struts/src/main/tld/wikitty-struts.tld 2011-06-30 14:02:02 UTC (rev 1011)
@@ -91,7 +91,7 @@
</attribute>
<attribute>
<description><![CDATA[the name of the field that have to be specialize]]></description>
- <name>name</name>
+ <name>fqFieldName</name>
<rtexprvalue>true</rtexprvalue>
<required>true</required>
</attribute>
@@ -116,7 +116,7 @@
</attribute>
<attribute>
<description><![CDATA[the name of the field that have to be specialize]]></description>
- <name>name</name>
+ <name>fqFieldName</name>
<rtexprvalue>true</rtexprvalue>
<required>true</required>
</attribute>
@@ -134,7 +134,7 @@
<bodycontent>empty</bodycontent>
<attribute>
<description><![CDATA[the name of the field that have to be specialize]]></description>
- <name>name</name>
+ <name>fqFieldName</name>
<rtexprvalue>true</rtexprvalue>
<required>true</required>
</attribute>
@@ -147,7 +147,7 @@
<bodycontent>empty</bodycontent>
<attribute>
<description><![CDATA[the name of the field that have to be specialize]]></description>
- <name>name</name>
+ <name>fqFieldName</name>
<rtexprvalue>true</rtexprvalue>
<required>true</required>
</attribute>
@@ -165,7 +165,7 @@
<bodycontent>empty</bodycontent>
<attribute>
<description><![CDATA[the name of the field that have to be specialize]]></description>
- <name>name</name>
+ <name>fqFieldName</name>
<rtexprvalue>true</rtexprvalue>
<required>true</required>
</attribute>
@@ -183,7 +183,7 @@
<bodycontent>empty</bodycontent>
<attribute>
<description><![CDATA[the name of the field that have to be specialize]]></description>
- <name>name</name>
+ <name>fqFieldName</name>
<rtexprvalue>true</rtexprvalue>
<required>true</required>
</attribute>
1
0
r1010 - trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts
by mfortun@users.nuiton.org 30 Jun '11
by mfortun@users.nuiton.org 30 Jun '11
30 Jun '11
Author: mfortun
Date: 2011-06-30 15:34:18 +0200 (Thu, 30 Jun 2011)
New Revision: 1010
Url: http://nuiton.org/repositories/revision/wikitty/1010
Log:
* correct ordering
Modified:
trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/WikittyFieldHandler.java
Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/WikittyFieldHandler.java
===================================================================
--- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/WikittyFieldHandler.java 2011-06-30 12:15:59 UTC (rev 1009)
+++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/WikittyFieldHandler.java 2011-06-30 13:34:18 UTC (rev 1010)
@@ -12,6 +12,7 @@
import org.apache.commons.logging.LogFactory;
import org.nuiton.util.StringUtil;
import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.WikittyUtil;
import org.nuiton.wikitty.entities.FieldType;
import org.nuiton.wikitty.entities.Wikitty;
import org.nuiton.wikitty.entities.WikittyExtension;
@@ -102,8 +103,18 @@
this.order = order;
}
+ /*
+ * Method called two times by wikitty tag
+ *
+ */
public Collection<ExtensionFieldStrutsBean> getWikittyField() {
+ // if order before selected and none field add, prepare the field list
+ // with another method
+ if (orderBefore && (fieldAdded.size() == 0)) {
+ return getFieldOrderedBefore();
+ }
+
Map<String, ExtensionFieldStrutsBean> mapField = new HashMap<String, ExtensionFieldStrutsBean>();
/*
@@ -121,103 +132,45 @@
* if extension excluded or not include while include is enable jump
* to the next extension
*/
- if ((excludeMap.containsKey(extName) && excludeMap.get(extName)
- .contains("*"))
- || (includeEnable && !includeMap.containsKey(extName))) {
- log.debug("extension: " + extName + " Skipped");
-
+ if (!isIncluded(extName, "*")) {
continue;
-
}
for (String fieldName : ext.getFieldNames()) {
- FieldType fieldType = wikitty.getExtension(extName)
- .getFieldType(fieldName);
+
/*
* if field is excluded or field not included while include mode
* jump to the next field or if field allready added to the page
*/
- if ((excludeMap.containsKey(extName) && excludeMap.get(extName)
- .contains(fieldName))
- || (includeEnable && !includeMap.get(extName).contains(
- fieldName))
- || fieldAdded.contains(extName + "." + fieldName)) {
- log.debug("field: " + extName + "." + fieldName
- + " Skipped");
+ if (!isIncluded(extName, fieldName)) {
continue;
-
}
- ExtensionFieldStrutsBean temp = new ExtensionFieldStrutsBean();
+ // delegate construction of the element
+ ExtensionFieldStrutsBean temp = constructExtensionFieldFromField(
+ extName, fieldName);
- temp.setName(extName + "." + fieldName);
- temp.setLabel(temp.getName());
- temp.setValue("");
-
- // set the field type.
- switch (fieldType.getType()) {
- case BINARY:
- temp.setType("file");
-
- break;
- case BOOLEAN:
- boolean valueBool = wikitty.getFieldAsBoolean(
- ext.getName(), fieldName);
- temp.setType("boolean");
- temp.setValue(valueBool);
-
- break;
- default:
- Object valueObject = wikitty.getFieldAsObject(
- ext.getName(), fieldName);
- String valueString = "";
-
- if (valueObject != null) {
- valueString = String.valueOf(valueObject);
- }
-
- temp.setValue(valueString);
-
- valueString = StringEscapeUtils.escapeHtml(valueString);
- if (valueString.contains("\n")
- || "true"
- .equals(fieldType.getTagValue("multiline"))) {
- temp.setType("textarea");
-
- } else {
- temp.setType("textfield");
-
- }
-
- }
+ // add element to the map
log.debug("Add field : " + temp);
mapField.put(temp.getName(), temp);
}
}
- /*
- * save the field that will be write only if write befeore is selected
- * because that mean that this method will be called two times when
- * write the openning template of the wikitty field and when it close
- * the wikitty field
- */
- if (orderBefore) {
- log.debug("Order before select, add field to addedfield set: "
- + mapField.keySet());
- fieldAdded.addAll(mapField.keySet());
- }
-
String[] fieldOrder = StringUtil.split(order, ",");
+ Collection<ExtensionFieldStrutsBean> result = mapField.values();
+
/*
* if an order is define parse order and construct ordering result if
- * all the field are not defined in the order juste add the rest at the
+ * all the field are not defined in the order just add the rest at the
* end of the result list.
*/
- if (fieldOrder.length != 0) {
+ if (fieldOrder.length != 0 && !orderBefore) {
List<ExtensionFieldStrutsBean> orderedResult = new LinkedList<ExtensionFieldStrutsBean>();
+ // fieldname have the classic fq field name format like:
+ // wikittyextension.name
for (String orderIt : fieldOrder) {
if (mapField.containsKey(orderIt)) {
@@ -225,14 +178,62 @@
}
}
-
+
orderedResult.addAll(mapField.values());
- return orderedResult;
+
+ result = orderedResult;
}
- return mapField.values();
+ return result;
}
+ protected Collection<ExtensionFieldStrutsBean> getFieldOrderedBefore() {
+
+ List<ExtensionFieldStrutsBean> result = new LinkedList<ExtensionFieldStrutsBean>();
+
+ String[] fieldOrder = StringUtil.split(order, ",");
+
+ /*
+ * this method is used because ordering before is different.
+ * We parse the list of the element we want ordered.4
+ * If we see a * that mean all the field have to be ordered now
+ * then add those field to the added field
+ */
+
+ if (fieldOrder.length != 0) {
+ for (String fieldit : fieldOrder) {
+
+ if (!isIncluded(fieldit)){
+ continue;
+ }
+ String extname = WikittyUtil
+ .getExtensionNameFromFQFieldName(fieldit);
+ String field = WikittyUtil.getFieldNameFromFQFieldName(fieldit);
+ // harvest all field of the extension
+ if ("*".equals(field)) {
+
+ WikittyExtension ext = wikitty.getExtension(extname);
+ for (String fieldNameIt : ext.getFieldNames()) {
+ ExtensionFieldStrutsBean temp = constructExtensionFieldFromField(
+ extname, fieldNameIt);
+ result.add(temp);
+ fieldAdded.add(temp.getName());
+ }
+
+ } else {
+ ExtensionFieldStrutsBean temp = constructExtensionFieldFromField(
+ extname, field);
+ result.add(temp);
+ fieldAdded.add(temp.getName());
+ }
+
+ }
+ }
+
+
+ return result;
+ }
+
/**
* construct map for exclude or include template
*
@@ -272,33 +273,90 @@
fieldAdded.add(field);
}
- public boolean isIncluded(String fieldname) {
+ public boolean isIncluded(String fqFieldName) {
- String[] fields = StringUtil.split(fieldname, ".");
-
+ String[] fields = StringUtil.split(fqFieldName, ".");
+
if (fields.length != 2) {
// TODO mfortun-2011-06-29 exception
}
String extName = fields[0];
String fieldName = fields[1];
-
+ return this.isIncluded(extName, fieldName);
+ }
+
+ public boolean isIncluded(String extName, String fieldName) {
+
// check if field is specifically exluded or if all the extention is
boolean excluded = excludeMap.containsKey(extName)
- && (excludeMap.get(extName).contains(fieldName) || excludeMap
- .get(extName).contains("*"));
-
- // check if field is specifically included or if all the extention is
- boolean included = includeEnable
- && includeMap.containsKey(extName)
- && !(includeMap.get(extName).contains(fieldName) || includeMap
- .get(extName).contains("*"));
+ && (excludeMap.get(extName).contains("*") || excludeMap.get(
+ extName).contains(fieldName));
+
+ // check if field is specifically included or if all the extention is
+ boolean notIncluded = !(includeEnable
+ && includeMap.containsKey(extName) && (includeMap.get(extName)
+ .contains("*") || includeMap.get(extName).contains(fieldName)));
// check if field allready added
- boolean added = fieldAdded.contains(fieldname);
- if (excluded || included || added) {
+ boolean added = fieldAdded.contains(extName + "." + fieldName);
+
+ log.debug("extension: " + extName + " field: " + fieldName
+ + "notInclude:" + notIncluded + " exclude:" + excluded
+ + " alreadyAdd:" + added);
+
+ if (excluded || notIncluded || added) {
return false;
}
return true;
}
+
+ protected ExtensionFieldStrutsBean constructExtensionFieldFromField(
+ String extName, String fieldName) {
+
+ ExtensionFieldStrutsBean result = new ExtensionFieldStrutsBean();
+
+ FieldType fieldType = wikitty.getExtension(extName).getFieldType(
+ fieldName);
+
+ result.setName(extName + "." + fieldName);
+ result.setLabel(result.getName());
+ result.setValue("");
+
+ // set the field type.
+ switch (fieldType.getType()) {
+ case BINARY:
+ result.setType("file");
+
+ break;
+ case BOOLEAN:
+ boolean valueBool = wikitty.getFieldAsBoolean(extName, fieldName);
+ result.setType("boolean");
+ result.setValue(valueBool);
+
+ break;
+ default:
+ Object valueObject = wikitty.getFieldAsObject(extName, fieldName);
+ String valueString = "";
+
+ if (valueObject != null) {
+ valueString = String.valueOf(valueObject);
+ }
+
+ result.setValue(valueString);
+
+ valueString = StringEscapeUtils.escapeHtml(valueString);
+ if (valueString.contains("\n")
+ || "true".equals(fieldType.getTagValue("multiline"))) {
+ result.setType("textarea");
+
+ } else {
+ result.setType("textfield");
+
+ }
+
+ }
+ return result;
+ }
+
}
1
0
r1009 - trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene
by echatellier@users.nuiton.org 30 Jun '11
by echatellier@users.nuiton.org 30 Jun '11
30 Jun '11
Author: echatellier
Date: 2011-06-30 14:15:59 +0200 (Thu, 30 Jun 2011)
New Revision: 1009
Url: http://nuiton.org/repositories/revision/wikitty/1009
Log:
Gestion des nullfields et des champs index?\195?\169s (analys?\195?\169)
Added:
trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/FieldModifier.java
Modified:
trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/LuceneUtil.java
trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/Restriction2Lucene.java
trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/WikittyLuceneConstants.java
trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/WikittySearchEngineLucene.java
Added: trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/FieldModifier.java
===================================================================
--- trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/FieldModifier.java (rev 0)
+++ trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/FieldModifier.java 2011-06-30 12:15:59 UTC (rev 1009)
@@ -0,0 +1,65 @@
+/*
+ * #%L
+ *
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 Codelutin, Chatellier Eric
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+
+package org.nuiton.wikitty.storage.lucene;
+
+import org.nuiton.wikitty.WikittyUtil;
+import org.nuiton.wikitty.entities.FieldType;
+import org.nuiton.wikitty.entities.WikittyExtension;
+import org.nuiton.wikitty.search.operators.Element;
+import org.nuiton.wikitty.storage.WikittyExtensionStorage;
+
+/**
+ * Field modifier. In lucene field are splited in.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class FieldModifier {
+
+ protected WikittyExtensionStorage extensionStorage;
+
+ public FieldModifier(WikittyExtensionStorage extensionStorage) {
+ this.extensionStorage = extensionStorage;
+ }
+
+ public String getLuceneFieldName(String wikittyFieldName, boolean analyzed) {
+ String result;
+ if (Element.ELT_ID.equals(wikittyFieldName)) {
+ result = WikittyLuceneConstants.LUCENE_ID;
+ } else if (Element.ELT_EXTENSION.equals(wikittyFieldName)) {
+ result = WikittyLuceneConstants.LUCENE_EXTENSIONS;
+ } else if (analyzed) {
+ // TODO peut etre recupererle type suivant le champs là
+ result = wikittyFieldName + "_a";
+ } else {
+ result = wikittyFieldName;
+ }
+ return result;
+ }
+}
Property changes on: trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/FieldModifier.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Modified: trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/LuceneUtil.java
===================================================================
--- trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/LuceneUtil.java 2011-06-29 16:03:04 UTC (rev 1008)
+++ trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/LuceneUtil.java 2011-06-30 12:15:59 UTC (rev 1009)
@@ -52,12 +52,12 @@
/** to use log facility, just put in your code: log.info(\"...\"); */
final static private Log log = LogFactory.getLog(LuceneUtil.class);
- /**
+ /*
* Get field name used in lucene storage for a field name in query.
*
* @param fieldName field name to convert
* @return field name in lucene
- */
+ *
public static String getLuceneFieldName(String fieldName) {
String result;
if (Element.ELT_ID.equals(fieldName)) {
@@ -68,22 +68,22 @@
result = fieldName;
}
return result;
- }
+ }*/
- /**
+ /*
* get value of field in Document, field must have only one value
* @param d
* @param fieldname
* @param type optional type to generate lucene field name
* @return
- */
+ *
static public Integer getIntFieldValue(Document d, String fieldname) {
String luceneFieldName = getLuceneFieldName(fieldname);
Object value = d.getFieldable(luceneFieldName).stringValue();
Integer result = convertToInteger(value, luceneFieldName);
return result;
- }
+ }*/
/**
* Converti un Object en String, si l'objet est de type String un simple
Modified: trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/Restriction2Lucene.java
===================================================================
--- trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/Restriction2Lucene.java 2011-06-29 16:03:04 UTC (rev 1008)
+++ trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/Restriction2Lucene.java 2011-06-30 12:15:59 UTC (rev 1009)
@@ -59,7 +59,7 @@
import org.nuiton.wikitty.search.operators.Unlike;
/**
- * Concert wikitty restriction to lucene search query.
+ * Convert wikitty restriction to lucene search query.
*
* @author chatellier
* @version $Revision$
@@ -72,12 +72,16 @@
/** Query parser depending on {@link Analyzer}. */
protected QueryParser parser;
- public Restriction2Lucene(Analyzer analyzer) {
+ protected FieldModifier fieldModifier;
+
+ public Restriction2Lucene(Analyzer analyzer, FieldModifier fieldModifier) {
+ this.fieldModifier = fieldModifier;
parser = new QueryParser(WikittySearchEngineLucene.WIKITTY_LUCENE_VERSION,
- WikittyLuceneConstants.LUCENE_DEFAULT_FIELD, analyzer);
+ WikittyLuceneConstants.LUCENE_DEFAULT_FIELD + WikittyLuceneConstants.SUFFIX_ANALYZED,
+ analyzer);
// allow "*" or "?" if first character wildcard query
- parser.setAllowLeadingWildcard(true);
+ parser.setAllowLeadingWildcard(true);
}
/**
@@ -170,9 +174,12 @@
}
protected String element2Lucene(Element element) {
+ return element2Lucene(element, false);
+ }
+
+ protected String element2Lucene(Element element, boolean analyzed) {
String result = element.getName();
- //result = fieldModifer.convertToSolr(transaction, result);
- result = LuceneUtil.getLuceneFieldName(result);
+ result = fieldModifier.getLuceneFieldName(result, analyzed);
return result;
}
@@ -181,7 +188,9 @@
* @return
*/
protected Query isNotNull2Lucene(Null restriction) {
- throw new NotImplementedException("Not yet implemented");
+ String fieldName = WikittyLuceneConstants.LUCENE_NULL_FIELD + restriction.getFieldName();
+ TermQuery query = new TermQuery(new Term(fieldName, "false"));
+ return query;
}
/**
@@ -189,7 +198,9 @@
* @return
*/
protected Query isNull2Lucene(Null restriction) {
- throw new NotImplementedException("Not yet implemented");
+ String fieldName = WikittyLuceneConstants.LUCENE_NULL_FIELD + restriction.getFieldName();
+ TermQuery query = new TermQuery(new Term(fieldName, "true"));
+ return query;
}
/**
@@ -280,7 +291,14 @@
String fieldName = element2Lucene(restriction.getElement());
String value = restriction.getValue();
- TermRangeQuery query = new TermRangeQuery(fieldName, value, "*", true, true);
+ // ne fonctionne pas, mais devrait
+ // TermRangeQuery query = new TermRangeQuery(fieldName, value, "*", true, true);
+
+ BooleanQuery query = new BooleanQuery();
+ query.add(new TermQuery(new Term(fieldName, "*")), BooleanClause.Occur.MUST);
+ TermRangeQuery rangeQuery = new TermRangeQuery(fieldName, "*", value, true, true);
+ query.add(rangeQuery, BooleanClause.Occur.MUST_NOT);
+
return query;
}
@@ -292,7 +310,14 @@
String fieldName = element2Lucene(restriction.getElement());
String value = restriction.getValue();
- TermRangeQuery query = new TermRangeQuery(fieldName, value, "*", false, false);
+ // ne fonctionne pas, mais devrait
+ //TermRangeQuery query = new TermRangeQuery(fieldName, value, "*", false, false);
+
+ BooleanQuery query = new BooleanQuery();
+ query.add(new TermQuery(new Term(fieldName, "*")), BooleanClause.Occur.MUST);
+ TermRangeQuery rangeQuery = new TermRangeQuery(fieldName, "*", value, false, false);
+ query.add(rangeQuery, BooleanClause.Occur.MUST_NOT);
+
return query;
}
Modified: trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/WikittyLuceneConstants.java
===================================================================
--- trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/WikittyLuceneConstants.java 2011-06-29 16:03:04 UTC (rev 1008)
+++ trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/WikittyLuceneConstants.java 2011-06-30 12:15:59 UTC (rev 1009)
@@ -67,5 +67,11 @@
static final public String TREENODE_ATTACHED = TREENODE_PREFIX + "attached.";
/** Use as field on Wikitty object attached on TreeNode, TreeNodeId is added at end used for facetisation */
- static final public String TREENODE_ATTACHED_ALL = TREENODE_PREFIX + "attached-all";
+ static final public String TREENODE_ATTACHED_ALL = TREENODE_PREFIX + "attached.all";
+
+ /** if field is null, this extra field is set to true otherwise is set to false */
+ static final public String LUCENE_NULL_FIELD = WIKITTY_LUCENE_PREFIX + "nullfield.";
+
+ /** Suffixe pour les champs stockés en facon analysé. */
+ static final public String SUFFIX_ANALYZED = "_a";
}
Modified: trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/WikittySearchEngineLucene.java
===================================================================
--- trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/WikittySearchEngineLucene.java 2011-06-29 16:03:04 UTC (rev 1008)
+++ trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/WikittySearchEngineLucene.java 2011-06-30 12:15:59 UTC (rev 1009)
@@ -27,6 +27,7 @@
import static org.nuiton.wikitty.storage.lucene.WikittyLuceneConstants.LUCENE_DEFAULT_FIELD;
import static org.nuiton.wikitty.storage.lucene.WikittyLuceneConstants.LUCENE_ID;
+import static org.nuiton.wikitty.storage.lucene.WikittyLuceneConstants.SUFFIX_ANALYZED;
import static org.nuiton.wikitty.storage.lucene.WikittyLuceneConstants.TREENODE_ATTACHED;
import static org.nuiton.wikitty.storage.lucene.WikittyLuceneConstants.TREENODE_ATTACHED_ALL;
import static org.nuiton.wikitty.storage.lucene.WikittyLuceneConstants.TREENODE_DEPTH;
@@ -78,6 +79,7 @@
import org.nuiton.wikitty.WikittyConfigOption;
import org.nuiton.wikitty.WikittyException;
import org.nuiton.wikitty.WikittyUtil;
+import org.nuiton.wikitty.entities.FieldType;
import org.nuiton.wikitty.entities.FieldType.TYPE;
import org.nuiton.wikitty.entities.Wikitty;
import org.nuiton.wikitty.entities.WikittyTreeNode;
@@ -127,6 +129,9 @@
/** Reader, writer and query analyzer. */
protected Analyzer indexAnalyzer;
+ /** Field modifier. */
+ protected FieldModifier fieldModifier;
+
/** Lucene version used by wikitty. */
protected static final Version WIKITTY_LUCENE_VERSION = Version.LUCENE_32;
@@ -140,7 +145,6 @@
try {
indexDirectory = getIndexDirectory(config);
- indexAnalyzer = getIndexAnalyzer(config);
// hack to create lucene index
// new IndexSearcher fails with no index
@@ -153,6 +157,10 @@
IOUtils.closeQuietly(writer);
}
}
+
+ indexAnalyzer = getIndexAnalyzer(config);
+
+ fieldModifier = new FieldModifier(extensionStorage);
} catch (IOException ex) {
throw new WikittyException("Can't init lucene directory", ex);
}
@@ -210,7 +218,8 @@
// default to StandardAnalyzer
if (analyzer == null) {
- analyzer = new StandardAnalyzer(Version.LUCENE_32);
+ analyzer = new StandardAnalyzer(WIKITTY_LUCENE_VERSION);
+ //analyzer = new KeywordAnalyzer();
}
if (log.isInfoEnabled()) {
@@ -707,6 +716,13 @@
/**
* Convert a wikitty object to a lucene {@link Document}.
*
+ * Le schema est le suivant:
+ * - n'est stocké (Store.YES) que ce qui peut servir à faire des facettes
+ * - n'est not tokennisé (Index.NOT_ANALYZED) ce qui peut servir a faire des facettes
+ * - dans le cas où le champ peut porter sur des requettes like
+ * il faut le stocker une deuxieme fois, tokenisé (Index.ANALYZED) c'est
+ * à dire tokenisé par l'analyser
+ *
* @param w wikitty to convert
* @return lucene document
*/
@@ -726,51 +742,91 @@
document.add(luceneExtField);
}
- StringBuffer allAsText = new StringBuffer();
// all other wikitty fields
for (String wikyttyField : w.getAllFieldNames()) {
String ext = WikittyUtil.getExtensionNameFromFQFieldName(wikyttyField);
String fieldName = WikittyUtil.getFieldNameFromFQFieldName(wikyttyField);
- if (w.getFieldType(wikyttyField).isCollection()) {
+ boolean hasFieldValue = false;
+
+ // field value storing
+ FieldType type = w.getFieldType(wikyttyField);
+ if (type.isCollection()) {
List<String> values = w.getFieldAsList(ext, fieldName, String.class);
// Store.YES = mandatory for facets
// Index.NOT_ANALYZED = mandatory for search on field
if (values != null) {
+ hasFieldValue = true;
for (String value : values) {
- Field luceneField = new Field(wikyttyField, value, Store.YES, Index.NOT_ANALYZED);
- document.add(luceneField);
-
- // copy content to #fulltext field
- allAsText.append(value);
+ addSingleFieldToDocument(document, wikyttyField, type, value);
}
}
} else {
String value = w.getFieldAsString(ext, fieldName);
if (StringUtils.isNotEmpty(value)) {
- if (log.isTraceEnabled()) {
- log.trace("add lucene field : " + wikyttyField + " = " + value);
- }
-
- // Store.YES = mandatory for facets
- // Index.ANALYZED = mandatory for search on field
- Field luceneField = new Field(wikyttyField, value, Store.YES, Index.NOT_ANALYZED);
- document.add(luceneField);
-
- // copy content to #fulltext field
- allAsText.append(value);
+ hasFieldValue = true;
+ addSingleFieldToDocument(document, wikyttyField, type, value);
}
}
+
+ // null field
+ // not field (no stored, no values)
+ Field luceneExtField = new Field(WikittyLuceneConstants.LUCENE_NULL_FIELD + wikyttyField,
+ String.valueOf(!hasFieldValue), Store.YES, Index.NOT_ANALYZED);
+ document.add(luceneExtField);
}
- // le champ text n'est pas stocké
- Field luceneFullTextField = new Field(LUCENE_DEFAULT_FIELD,
- allAsText.toString(), Store.NO, Index.ANALYZED);
- document.add(luceneFullTextField);
-
return document;
}
+ /**
+ * Ajout d'un champ unique dans un document lucene. Si la methode
+ * est appelée plusieurs fois avec le même champ (fqFieldName), le champ
+ * sera multivalué.
+ *
+ * @param document lucene document
+ * @param fqFieldName field name
+ * @param type field type
+ * @param value value
+ */
+ protected void addSingleFieldToDocument(Document document, String fqFieldName, FieldType type, String value) {
+ if (log.isTraceEnabled()) {
+ log.trace("add lucene field : " + fqFieldName + " = " + value);
+ }
+
+ // Store.YES = mandatory for facets
+ // Index.NOT_ANALYZED = mandatory for strict equality
+ Field luceneField = new Field(fqFieldName, value, Store.YES, Index.NOT_ANALYZED);
+ document.add(luceneField);
+
+ switch (type.getType()) {
+ case STRING:
+
+ // Store.NO = pas de facette dessus
+ // Index.ANALYZED = mandatory for strict equality (pour recherche like)
+ Field aLuceneField = new Field(fqFieldName + SUFFIX_ANALYZED, value, Store.NO, Index.ANALYZED);
+ document.add(aLuceneField);
+
+ // copy content to #fulltext field (multivalued)
+ Field luceneFullTextField = new Field(LUCENE_DEFAULT_FIELD, value, Store.YES, Index.NOT_ANALYZED);
+ document.add(luceneFullTextField);
+
+ // copy content to #fulltext_a field (multivalued)
+ Field aLuceneFullTextField = new Field(LUCENE_DEFAULT_FIELD + SUFFIX_ANALYZED, value, Store.NO, Index.ANALYZED);
+ document.add(aLuceneFullTextField);
+
+ break;
+ case BINARY:
+ case DATE:
+ case BOOLEAN:
+ case NUMERIC:
+ case WIKITTY:
+ break;
+ default :
+ throw new WikittyException("Not managed wikitty type : " + type.getType());
+ }
+ }
+
/*
* @see org.nuiton.wikitty.storage.WikittySearchEngine#delete(org.nuiton.wikitty.services.WikittyTransaction, java.util.Collection)
*/
@@ -819,12 +875,14 @@
PagedResult<String> pagedResult = null;
IndexReader indexReader = null;
+ //IndexSearcher indexSearcher = null;
try {
indexReader = IndexReader.open(indexDirectory);
+ //indexSearcher = new IndexSearcher(indexDirectory);
// get lucene query
Restriction restriction = criteria.getRestriction();
- Restriction2Lucene restriction2Lucene = new Restriction2Lucene(indexAnalyzer);
+ Restriction2Lucene restriction2Lucene = new Restriction2Lucene(indexAnalyzer, fieldModifier);
Query query = restriction2Lucene.toLucene(restriction);
if (log.isDebugEnabled()) {
@@ -875,7 +933,8 @@
br.setOffset(firstIndex);
br.setCount(endIndex - firstIndex);
br.setQuery(query);
- if (sortFields.isEmpty()) {
+
+ if (!sortFields.isEmpty()) {
SortField[] sortFieldsA = sortFields.toArray(new SortField[sortFields.size()]);
br.setSort(sortFieldsA);
}
@@ -893,13 +952,14 @@
}
}
- /*// manage criteria facets
+ //// manage criteria facets
List<Criteria> facetCriterias = criteria.getFacetCriteria();
if (facetCriterias != null) {
- for (Criteria facetCriteria : facetCriterias) {
- Query facetQuery = restriction2Lucene.toLucene(facetCriteria.getRestriction());
- }
- }*/
+ throw new WikittyException("Facet criteria not supported yet");
+ // for (Criteria facetCriteria : facetCriterias) {
+ // Query facetQuery = restriction2Lucene.toLucene(facetCriteria.getRestriction());
+ // }
+ }
// perform request
Browsable browser = new BoboBrowser(boboReader);
@@ -943,25 +1003,25 @@
pagedResult = new PagedResult<String>(firstIndex, pagedResultCount,
query.toString(), pagedResultFacets, results);
- // execute search query
- /*List<String> results = new ArrayList<String>();
+ /*// execute search query
+ List<String> results = new ArrayList<String>();
int totalHitCount = 0;
if (endIndex == 0) {
// il faut un cas special pour le 0, sinon lucene rale.
// Utilisation d'un collector qui ne fait que compter
// le nombre de résultat
TotalHitCountCollector collector = new TotalHitCountCollector();
- searcher.search(query, null, collector);
+ indexSearcher.search(query, null, collector);
totalHitCount = collector.getTotalHits();
} else {
// ca où il y a vraiment des documents retourné par la requete
TopDocs topDocs = null;
if (sortFields.isEmpty()) {
- topDocs = searcher.search(query, null, endIndex);
+ topDocs = indexSearcher.search(query, null, endIndex);
} else {
Sort sortOption = new Sort(sortFields.toArray(new SortField[sortFields.size()]));
- topDocs = searcher.search(query, null, endIndex, sortOption);
+ topDocs = indexSearcher.search(query, null, endIndex, sortOption);
}
ScoreDoc[] scoreDocs = topDocs.scoreDocs;
@@ -970,7 +1030,7 @@
for (ScoreDoc scoreDoc : scoreDocs) {
if (currentDocIndex >= firstIndex && currentDocIndex <= endIndex) {
int luceneId = scoreDoc.doc;
- Document document = searcher.doc(luceneId);
+ Document document = indexSearcher.doc(luceneId);
String wikittyId = document.get(WikittyLuceneConstants.LUCENE_ID);
results.add(wikittyId);
}
@@ -988,6 +1048,7 @@
throw new WikittyException("Can't search on index", ex);
} finally {
IOUtils.closeQuietly(indexReader);
+ //IOUtils.closeQuietly(indexSearcher);
}
return pagedResult;
@@ -1096,7 +1157,7 @@
// on a dans treeSearch uniquement le noeud passe en parametre
// et ses enfants jusqu'a la profondeur demandee
Restriction2Lucene restriction2Lucene =
- new Restriction2Lucene(indexAnalyzer);
+ new Restriction2Lucene(indexAnalyzer, fieldModifier);
Query query = restriction2Lucene.toLucene(treeCriteria.getRestriction());
TopDocs topDocs = searcher.search(query, null, 1000);
//SolrQuery query = new SolrQuery(SOLR_QUERY_PARSER + queryString);
1
0
r1008 - trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts
by mfortun@users.nuiton.org 29 Jun '11
by mfortun@users.nuiton.org 29 Jun '11
29 Jun '11
Author: mfortun
Date: 2011-06-29 18:03:04 +0200 (Wed, 29 Jun 2011)
New Revision: 1008
Url: http://nuiton.org/repositories/revision/wikitty/1008
Log:
* really implement method to know from a fieldname (wikittyext.fieldname) is allow in the form
Modified:
trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/WikittyFieldHandler.java
Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/WikittyFieldHandler.java
===================================================================
--- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/WikittyFieldHandler.java 2011-06-29 14:54:50 UTC (rev 1007)
+++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/WikittyFieldHandler.java 2011-06-29 16:03:04 UTC (rev 1008)
@@ -16,22 +16,25 @@
import org.nuiton.wikitty.entities.Wikitty;
import org.nuiton.wikitty.entities.WikittyExtension;
-
public class WikittyFieldHandler {
/** to use log facility, just put in your code: log.info(\"...\"); */
final static private Log log = LogFactory.getLog(WikittyFieldHandler.class);
-
-
+
protected Wikitty wikitty;
protected WikittyProxy proxy;
protected String include = "";
protected String exclude = "";
protected String order = "";
-
+
protected Boolean orderBefore;
protected Set<String> fieldAdded;
-
+
+ protected Map<String, List<String>> excludeMap;
+ protected Map<String, List<String>> includeMap;
+ // if include is enable it change how to construct result
+ protected boolean includeEnable = false;
+
public Set<String> getFieldAdded() {
return fieldAdded;
}
@@ -58,8 +61,8 @@
public void setOrderBefore(Boolean orderBefore) {
this.orderBefore = orderBefore;
- }
-
+ }
+
public WikittyProxy getProxy() {
return proxy;
}
@@ -74,6 +77,10 @@
public void setInclude(String include) {
this.include = include;
+ // recalculate include map
+ // delegate construction of map
+ includeMap = constructIncludeExcludeMap(include);
+ includeEnable = includeMap.size() != 0;
}
public String getExclude() {
@@ -82,6 +89,9 @@
public void setExclude(String exclude) {
this.exclude = exclude;
+ // recalculate exclude map
+ // delegate construction of map
+ excludeMap = constructIncludeExcludeMap(exclude);
}
public String getOrder() {
@@ -92,7 +102,6 @@
this.order = order;
}
-
public Collection<ExtensionFieldStrutsBean> getWikittyField() {
Map<String, ExtensionFieldStrutsBean> mapField = new HashMap<String, ExtensionFieldStrutsBean>();
@@ -105,12 +114,6 @@
* included and excluded, it will not appear in the result
*/
- // delegate construction of map
- Map<String, List<String>> excludeMap = constructIncludeExcludeMap(exclude);
- Map<String, List<String>> includeMap = constructIncludeExcludeMap(include);
- // if include is enable it change how to construct result
- boolean includeEnable = includeMap.size() != 0;
-
for (WikittyExtension ext : wikitty.getExtensions()) {
String extName = ext.getName();
@@ -121,8 +124,8 @@
if ((excludeMap.containsKey(extName) && excludeMap.get(extName)
.contains("*"))
|| (includeEnable && !includeMap.containsKey(extName))) {
- log.debug("extension: "+extName + " Skipped");
-
+ log.debug("extension: " + extName + " Skipped");
+
continue;
}
@@ -137,8 +140,10 @@
if ((excludeMap.containsKey(extName) && excludeMap.get(extName)
.contains(fieldName))
|| (includeEnable && !includeMap.get(extName).contains(
- fieldName)) || fieldAdded.contains(extName+"."+fieldName)) {
- log.debug("field: "+extName+"."+fieldName + " Skipped");
+ fieldName))
+ || fieldAdded.contains(extName + "." + fieldName)) {
+ log.debug("field: " + extName + "." + fieldName
+ + " Skipped");
continue;
}
@@ -149,7 +154,6 @@
temp.setLabel(temp.getName());
temp.setValue("");
-
// set the field type.
switch (fieldType.getType()) {
case BINARY:
@@ -167,10 +171,10 @@
Object valueObject = wikitty.getFieldAsObject(
ext.getName(), fieldName);
String valueString = "";
-
+
if (valueObject != null) {
valueString = String.valueOf(valueObject);
- }
+ }
temp.setValue(valueString);
@@ -186,25 +190,22 @@
}
}
- log.debug("Add field : " + temp );
+ log.debug("Add field : " + temp);
mapField.put(temp.getName(), temp);
}
}
-
/*
- * save the field that will be write
- * only if write befeore is selected because that mean that this
- * method will be called two times when write the openning template
- * of the wikitty field and when it close the wikitty field
+ * save the field that will be write only if write befeore is selected
+ * because that mean that this method will be called two times when
+ * write the openning template of the wikitty field and when it close
+ * the wikitty field
*/
- if( orderBefore ){
- log.debug("Order before select, add field to addedfield set: "
+ if (orderBefore) {
+ log.debug("Order before select, add field to addedfield set: "
+ mapField.keySet());
fieldAdded.addAll(mapField.keySet());
}
-
-
String[] fieldOrder = StringUtil.split(order, ",");
@@ -224,6 +225,7 @@
}
}
+
orderedResult.addAll(mapField.values());
return orderedResult;
}
@@ -264,13 +266,39 @@
}
return result;
}
-
+
public void addAddedField(String field) {
- log.debug("Field added : " +field);
+ log.debug("Field added : " + field);
fieldAdded.add(field);
}
-
+
public boolean isIncluded(String fieldname) {
+
+ String[] fields = StringUtil.split(fieldname, ".");
+
+ if (fields.length != 2) {
+ // TODO mfortun-2011-06-29 exception
+ }
+ String extName = fields[0];
+ String fieldName = fields[1];
+
+
+ // check if field is specifically exluded or if all the extention is
+ boolean excluded = excludeMap.containsKey(extName)
+ && (excludeMap.get(extName).contains(fieldName) || excludeMap
+ .get(extName).contains("*"));
+
+ // check if field is specifically included or if all the extention is
+ boolean included = includeEnable
+ && includeMap.containsKey(extName)
+ && !(includeMap.get(extName).contains(fieldName) || includeMap
+ .get(extName).contains("*"));
+ // check if field allready added
+ boolean added = fieldAdded.contains(fieldname);
+ if (excluded || included || added) {
+ return false;
+ }
+
return true;
}
}
1
0
r1007 - in trunk/wikitty-struts/src/main: java/org/nuiton/wikitty/struts java/template/xhtml resources
by mfortun@users.nuiton.org 29 Jun '11
by mfortun@users.nuiton.org 29 Jun '11
29 Jun '11
Author: mfortun
Date: 2011-06-29 16:54:50 +0200 (Wed, 29 Jun 2011)
New Revision: 1007
Url: http://nuiton.org/repositories/revision/wikitty/1007
Log:
* complete basic edit action
* add struts tag inside xml (required even if tag stay empty)
* remove file option from wikitty template
Modified:
trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/AbstractWikittyEditAction.java
trunk/wikitty-struts/src/main/java/template/xhtml/wikitty-commons.ftl
trunk/wikitty-struts/src/main/resources/struts-plugin.xml
Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/AbstractWikittyEditAction.java
===================================================================
--- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/AbstractWikittyEditAction.java 2011-06-29 14:31:46 UTC (rev 1006)
+++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/AbstractWikittyEditAction.java 2011-06-29 14:54:50 UTC (rev 1007)
@@ -1,7 +1,20 @@
package org.nuiton.wikitty.struts;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Map.Entry;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.util.StringUtil;
import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.WikittyUtil;
+import org.nuiton.wikitty.entities.FieldType;
+import org.nuiton.wikitty.entities.Wikitty;
+import org.nuiton.wikitty.entities.FieldType.TYPE;
+import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public abstract class AbstractWikittyEditAction extends ActionSupport {
@@ -11,6 +24,15 @@
*/
private static final long serialVersionUID = 1959245739866183821L;
+ /** to use log facility, just put in your code: log.info(\"...\"); */
+ final static private Log log = LogFactory.getLog(AbstractWikittyEditAction.class);
+
+ protected String id;
+ protected String redirect;
+ protected String delete;
+ protected String store;
+
+ protected Map<String, Object> wikittyFieldMap = new HashMap<String, Object>();
/*
rajouter les attributs par défaut id tout ça
@@ -22,10 +44,74 @@
@Override
public String execute() throws Exception {
+ // restore basic element to know what to do
+ id = getArgument("id", "");
+ redirect = getArgument("redirect", "");
+ delete = getArgument("delete", "");
+ store = getArgument("store", "");
+
+
WikittyProxy proxy = getProxy();
+ if (delete != "" ){
+ proxy.delete(id);
+
+ } else if (store != ""){
+ Map<String, Object> param = ActionContext.getContext().getParameters();
+ this.formatArgs(param);
+
+ Wikitty wikitty = proxy.restore(id);
+ if (wikitty != null){
+
+ for (Entry<String, Object> entry : wikittyFieldMap.entrySet()){
+ //wikitty.setFqField(entry.getKey(), entry.getValue());
+
+ FieldType ftype = wikitty.getFieldType(entry.getKey());
+
+ Object value = entry.getValue();
+
+ // Patch to handle string collection
+ if (ftype.isCollection()
+ && ftype.getType() == TYPE.STRING
+ && value != null) {
+
+ String valueString = value.toString();
+
+ valueString = new String(valueString.substring(
+ 1, valueString.length() - 1));
+
+ Collection<String> list = new ArrayList<String>();
+
+ String[] valuesString = StringUtil.split(
+ valueString, ",");
+
+ for (String element : valuesString) {
+ list.add(element.trim());
+ }
+
+ value = list;
+ }
+
+
+ wikitty.setFqField(entry.getKey(), value);
+
+
+
+ }
+
+ }
+
+
+ proxy.store(wikitty);
+
+ }
+
+
+
+
+ System.out.println(wikittyFieldMap);
return SUCCESS;
@@ -35,4 +121,48 @@
public abstract WikittyProxy getProxy();
+ protected Map<String, Object> formatArgs(Map<String, Object> args) {
+ wikittyFieldMap = new HashMap<String, Object>();
+ for (Entry<String, Object> en : args.entrySet()) {
+
+ if (en.getKey().startsWith("Wikitty")) {
+
+ String value = "";
+
+ if (en.getValue() instanceof String[]) {
+ for (String occu : (String[]) en.getValue()) {
+ value += occu;
+ }
+ } else {
+ value = String.valueOf(en.getValue());
+ }
+ wikittyFieldMap.put(en.getKey(), value);
+ }
+ }
+ return wikittyFieldMap;
+ }
+
+
+ public String getArgument(String key, String defaultValue) {
+ Object temp = ActionContext.getContext().getParameters().get(key);
+ // same method used inside wikitty publication base action
+ String result = "";
+ // TODO mfortun-2011-06-29 fix this with something clean
+ if (temp == null) {
+ result = defaultValue;
+ } else {
+ if (temp instanceof String[]) {
+ for (String t : (String[]) temp) {
+ result += t;
+ }
+ } else {
+ result = temp.toString();
+
+ }
+
+ }
+ return result;
+ }
+
+
}
Modified: trunk/wikitty-struts/src/main/java/template/xhtml/wikitty-commons.ftl
===================================================================
--- trunk/wikitty-struts/src/main/java/template/xhtml/wikitty-commons.ftl 2011-06-29 14:31:46 UTC (rev 1006)
+++ trunk/wikitty-struts/src/main/java/template/xhtml/wikitty-commons.ftl 2011-06-29 14:54:50 UTC (rev 1007)
@@ -1,9 +1,9 @@
<#assign aKeys = parameters.wikittyfields><#t/>
<#list aKeys as aKey><#t/>
-<#if aKey.type=="file">
+<#--<#if aKey.type=="file">
<input type="hidden" name="${aKey.name}" value="BINARY" />
${aKey.label} : <input type="file" name="File" label ="File"/>
-</#if>
+</#if>-->
<#if aKey.type=="hidden">
<input type="hidden" name="${aKey.name}" value="${aKey.value}" />
</#if>
Modified: trunk/wikitty-struts/src/main/resources/struts-plugin.xml
===================================================================
--- trunk/wikitty-struts/src/main/resources/struts-plugin.xml 2011-06-29 14:31:46 UTC (rev 1006)
+++ trunk/wikitty-struts/src/main/resources/struts-plugin.xml 2011-06-29 14:54:50 UTC (rev 1007)
@@ -2,4 +2,6 @@
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
-
\ No newline at end of file
+
+
+ <struts></struts>
\ No newline at end of file
1
0
r1006 - trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene
by echatellier@users.nuiton.org 29 Jun '11
by echatellier@users.nuiton.org 29 Jun '11
29 Jun '11
Author: echatellier
Date: 2011-06-29 16:31:46 +0200 (Wed, 29 Jun 2011)
New Revision: 1006
Url: http://nuiton.org/repositories/revision/wikitty/1006
Log:
Fix gt, ge, lt, le restrictions
Modified:
trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/Restriction2Lucene.java
trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/WikittySearchEngineLucene.java
Modified: trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/Restriction2Lucene.java
===================================================================
--- trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/Restriction2Lucene.java 2011-06-29 13:28:23 UTC (rev 1005)
+++ trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/Restriction2Lucene.java 2011-06-29 14:31:46 UTC (rev 1006)
@@ -88,7 +88,7 @@
* @throws WikittyException if query can't be parsed
*/
public Query toLucene(Restriction restriction) throws WikittyException {
-
+
Query query = null;
try {
@@ -277,7 +277,11 @@
* @return
*/
protected Query greatEq2Lucene(GreaterOrEqual restriction) {
- throw new NotImplementedException("Not yet implemented");
+ String fieldName = element2Lucene(restriction.getElement());
+ String value = restriction.getValue();
+
+ TermRangeQuery query = new TermRangeQuery(fieldName, value, "*", true, true);
+ return query;
}
/**
@@ -285,7 +289,11 @@
* @return
*/
protected Query great2Lucene(Greater restriction) {
- throw new NotImplementedException("Not yet implemented");
+ String fieldName = element2Lucene(restriction.getElement());
+ String value = restriction.getValue();
+
+ TermRangeQuery query = new TermRangeQuery(fieldName, value, "*", false, false);
+ return query;
}
/**
@@ -293,7 +301,11 @@
* @return
*/
protected Query lessEq2Lucene(LessOrEqual restriction) {
- throw new NotImplementedException("Not yet implemented");
+ String fieldName = element2Lucene(restriction.getElement());
+ String value = restriction.getValue();
+
+ TermRangeQuery query = new TermRangeQuery(fieldName, "*", value, true, true);
+ return query;
}
/**
@@ -301,7 +313,11 @@
* @return
*/
protected Query less2Lucene(Less restriction) {
- throw new NotImplementedException("Not yet implemented");
+ String fieldName = element2Lucene(restriction.getElement());
+ String value = restriction.getValue();
+
+ TermRangeQuery query = new TermRangeQuery(fieldName, "*", value, false, false);
+ return query;
}
/**
@@ -337,10 +353,10 @@
*/
protected Query or2Lucene(Or or) {
if (or.getRestrictions() == null) {
- throw new WikittyException("and.restrictions is null");
+ throw new WikittyException("or.restrictions is null");
}
if (or.getRestrictions().size() < 2) {
- throw new WikittyException("AND is an operator that handle 2 operand at least");
+ throw new WikittyException("OR is an operator that handle 2 operand at least");
}
BooleanQuery query = new BooleanQuery();
for (Restriction restriction : or.getRestrictions()) {
Modified: trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/WikittySearchEngineLucene.java
===================================================================
--- trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/WikittySearchEngineLucene.java 2011-06-29 13:28:23 UTC (rev 1005)
+++ trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/WikittySearchEngineLucene.java 2011-06-29 14:31:46 UTC (rev 1006)
@@ -62,7 +62,6 @@
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.Term;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
import org.apache.lucene.search.BooleanClause;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.IndexSearcher;
1
0