Author: shijh
Date: Wed May 10 23:58:31 2017
New Revision: 1794770
URL: http://svn.apache.org/viewvc?rev=1794770&view=rev
Log:
Fixed: Update Apache Solr/Lucene to release 6.2.1
OFBIZ-8316
Updated Lucene from 6.2.1 to 6.5.1 and the point fields generated by
Lucene are ok now for Solr component.
Thanks: Cao Pengan for the patch and Jacques, Michael for the comments and
reviews.
Modified:
ofbiz/ofbiz-plugins/trunk/lucene/build.gradle
ofbiz/ofbiz-plugins/trunk/lucene/groovyScripts/content/Search.groovy
ofbiz/ofbiz-plugins/trunk/lucene/groovyScripts/content/
SearchProducts.groovy
ofbiz/ofbiz-plugins/trunk/lucene/src/main/java/org/
apache/ofbiz/content/search/ProductDocument.java
ofbiz/ofbiz-plugins/trunk/lucene/src/main/java/org/
apache/ofbiz/content/search/SearchWorker.java
Modified: ofbiz/ofbiz-plugins/trunk/lucene/build.gradle
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-plugins/trunk/
lucene/build.gradle?rev=1794770&r1=1794769&r2=1794770&view=diff
============================================================
==================
--- ofbiz/ofbiz-plugins/trunk/lucene/build.gradle (original)
+++ ofbiz/ofbiz-plugins/trunk/lucene/build.gradle Wed May 10 23:58:31 2017
@@ -17,7 +17,7 @@
* under the License.
*/
dependencies {
- pluginLibsCompile 'org.apache.lucene:lucene-core:6.2.1'
- pluginLibsCompile 'org.apache.lucene:lucene-queryparser:6.2.1'
- pluginLibsCompile 'org.apache.lucene:lucene-analyzers-common:6.2.1'
+ pluginLibsCompile 'org.apache.lucene:lucene-core:6.5.1'
+ pluginLibsCompile 'org.apache.lucene:lucene-queryparser:6.5.1'
+ pluginLibsCompile 'org.apache.lucene:lucene-analyzers-common:6.5.1'
}
\ No newline at end of file
Modified: ofbiz/ofbiz-plugins/trunk/lucene/groovyScripts/content/
Search.groovy
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-plugins/trunk/
lucene/groovyScripts/content/Search.groovy?rev=1794770&r1=
1794769&r2=1794770&view=diff
============================================================
==================
--- ofbiz/ofbiz-plugins/trunk/lucene/groovyScripts/content/Search.groovy
(original)
+++ ofbiz/ofbiz-plugins/trunk/lucene/groovyScripts/content/Search.groovy
Wed May 10 23:58:31 2017
@@ -22,15 +22,13 @@ import org.apache.lucene.document.Docume
import org.apache.lucene.index.Term
import org.apache.lucene.queryparser.classic.QueryParser
import org.apache.lucene.store.FSDirectory
-import org.apache.lucene.search.*
-import org.apache.lucene.index.DirectoryReader
-
import org.apache.ofbiz.base.util.UtilHttp
import org.apache.ofbiz.content.search.SearchWorker
import org.apache.ofbiz.product.feature.ParametricSearch
+import org.apache.lucene.search.*
+import org.apache.lucene.index.DirectoryReader
import org.apache.ofbiz.base.util.UtilProperties
-
queryLine = parameters.queryLine
siteId = parameters.lcSiteId
@@ -41,7 +39,7 @@ searchFeature3 = (String) parameters.SEA
featureIdByType = ParametricSearch.makeFeatureIdByTypeMap(
UtilHttp.getParameterMap(request))
-combQuery = new BooleanQuery.Builder()
+combQuery = new BooleanQuery()
try {
DirectoryReader reader = DirectoryReader.open(FSDirectory.open(new
File(SearchWorker.getIndexPath("content")).toPath()))
@@ -66,7 +64,7 @@ if (queryLine || siteId) {
}
if (searchFeature1 || searchFeature2 || searchFeature3 ||
!featureIdByType.isEmpty()) {
- featureQuery = new BooleanQuery.Builder()
+ featureQuery = new BooleanQuery()
featuresRequired = BooleanClause.Occur.MUST
if ("any".equals(parameters.any_or_all)) {
featuresRequired = BooleanClause.Occur.SHOULD
@@ -92,12 +90,12 @@ if (searchFeature1 || searchFeature2 ||
termQuery = new TermQuery(new Term("feature", value))
featureQuery.add(termQuery, featuresRequired)
}
- combQuery.add(featureQuery.build(), featuresRequired)
+ combQuery.add(featureQuery, featuresRequired)
}
}
if (searcher) {
TopScoreDocCollector collector = TopScoreDocCollector.create(100)
//defaulting to 100 results
- searcher.search(combQuery.build(), collector)
+ searcher.search(combQuery, collector)
ScoreDoc[] hits = collector.topDocs().scoreDocs
contentList = [] as ArrayList
Modified: ofbiz/ofbiz-plugins/trunk/lucene/groovyScripts/content/
SearchProducts.groovy
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-plugins/trunk/
lucene/groovyScripts/content/SearchProducts.groovy?rev=
1794770&r1=1794769&r2=1794770&view=diff
============================================================
==================
--- ofbiz/ofbiz-plugins/trunk/lucene/groovyScripts/content/SearchProducts.groovy
(original)
+++ ofbiz/ofbiz-plugins/trunk/lucene/groovyScripts/content/SearchProducts.groovy
Wed May 10 23:58:31 2017
@@ -25,11 +25,16 @@ import org.apache.lucene.document.Docume
import org.apache.lucene.index.DirectoryReader
import org.apache.lucene.queryparser.classic.ParseException
import org.apache.lucene.queryparser.classic.QueryParser
-import org.apache.lucene.search.*
+import org.apache.lucene.search.BooleanClause
+import org.apache.lucene.search.BooleanQuery
+import org.apache.lucene.search.IndexSearcher
+import org.apache.lucene.search.Query
+import org.apache.lucene.search.ScoreDoc
+import org.apache.lucene.search.TopScoreDocCollector
import org.apache.lucene.store.FSDirectory
if (parameters.luceneQuery) {
- combQuery = new BooleanQuery.Builder()
+ Query combQuery = new BooleanQuery()
IndexSearcher searcher
WhitespaceAnalyzer analyzer
try {
@@ -53,7 +58,7 @@ if (parameters.luceneQuery) {
combQuery.add(query, BooleanClause.Occur.MUST)
TopScoreDocCollector collector = TopScoreDocCollector.create(100) //
defaulting to 100 results
- searcher.search(combQuery.build(), collector)
+ searcher.search(combQuery, collector)
ScoreDoc[] hits = collector.topDocs().scoreDocs
productList = []
hits.each { hit ->
Modified: ofbiz/ofbiz-plugins/trunk/lucene/src/main/java/org/
apache/ofbiz/content/search/ProductDocument.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-plugins/trunk/
lucene/src/main/java/org/apache/ofbiz/content/search/
ProductDocument.java?rev=1794770&r1=1794769&r2=1794770&view=diff
============================================================
==================
--- ofbiz/ofbiz-plugins/trunk/lucene/src/main/java/org/
apache/ofbiz/content/search/ProductDocument.java (original)
+++ ofbiz/ofbiz-plugins/trunk/lucene/src/main/java/org/
apache/ofbiz/content/search/ProductDocument.java Wed May 10 23:58:31 2017
@@ -87,13 +87,13 @@ public class ProductDocument implements
this.addTextFieldByWeight(doc, "description",
product.getString("description"), "index.weight.Product.description", 0,
false, "fullText", delegator);
this.addTextFieldByWeight(doc, "longDescription",
product.getString("longDescription"), "index.weight.Product.longDescription",
0, false, "fullText", delegator);
// OFBiz-8316, the LongPoint should be reused when
updating to Solr 6.4.1 or later
- doc.add(new StringField("introductionDate",
String.valueOf(quantizeTimestampToDays(product.getTimestamp("introductionDate"))),
Field.Store.NO));
-// doc.add(new LongPoint("introductionDate",
quantizeTimestampToDays(product.getTimestamp("introductionDate"))));
+// doc.add(new StringField("introductionDate",
String.valueOf(quantizeTimestampToDays(product.getTimestamp("introductionDate"))),
Field.Store.NO));
+ doc.add(new LongPoint("introductionDate",
quantizeTimestampToDays(product.getTimestamp("introductionDate"))));
nextReIndex = this.checkSetNextReIndex(
product.getTimestamp("introductionDate"), nextReIndex);
// OFBiz-8316, the LongPoint should be reused when
updating to Solr 6.4.1 or later
// doc.add(new LongField("salesDiscontinuationDate",
quantizeTimestampToDays(product.getTimestamp("salesDiscontinuationDate")),
Field.Store.NO));
- doc.add(new StringField("salesDiscontinuationDate",
String.valueOf(quantizeTimestampToDays(product.getTimestamp("salesDiscontinuationDate"))),
Field.Store.NO));
-// doc.add(new LongPoint("salesDiscontinuationDate",
quantizeTimestampToDays(product.getTimestamp("
salesDiscontinuationDate"))));
+// doc.add(new StringField("salesDiscontinuationDate",
String.valueOf(quantizeTimestampToDays(product.getTimestamp("salesDiscontinuationDate"))),
Field.Store.NO));
+ doc.add(new LongPoint("salesDiscontinuationDate",
quantizeTimestampToDays(product.getTimestamp("
salesDiscontinuationDate"))));
nextReIndex = this.checkSetNextReIndex(
product.getTimestamp("salesDiscontinuationDate"), nextReIndex);
doc.add(new StringField("isVariant",
product.get("isVariant") != null && product.getBoolean("isVariant") ?
"true" : "false", Field.Store.NO));
@@ -252,8 +252,8 @@ public class ProductDocument implements
fieldNameSb.append("_price");
// OFBiz-8316, the DoublePoint should be reused when
updating to Solr 6.4.1 or later
// doc.add(new DoubleField(fieldNameSb.toString(),
productPrice.getDouble("price"), Field.Store.NO));
- doc.add(new StringField(fieldNameSb.toString(),
String.valueOf(productPrice.getDouble("price")), Field.Store.NO));
-// doc.add(new DoublePoint(fieldNameSb.toString(),
productPrice.getDouble("price")));
+// doc.add(new StringField(fieldNameSb.toString(),
String.valueOf(productPrice.getDouble("price")), Field.Store.NO));
+ doc.add(new DoublePoint(fieldNameSb.toString(),
productPrice.getDouble("price")));
}
// Index ProductSuppliers
Modified: ofbiz/ofbiz-plugins/trunk/lucene/src/main/java/org/
apache/ofbiz/content/search/SearchWorker.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-plugins/trunk/
lucene/src/main/java/org/apache/ofbiz/content/search/
SearchWorker.java?rev=1794770&r1=1794769&r2=1794770&view=diff
============================================================
==================
--- ofbiz/ofbiz-plugins/trunk/lucene/src/main/java/org/
apache/ofbiz/content/search/SearchWorker.java (original)
+++ ofbiz/ofbiz-plugins/trunk/lucene/src/main/java/org/
apache/ofbiz/content/search/SearchWorker.java Wed May 10 23:58:31 2017
@@ -41,7 +41,7 @@ public final class SearchWorker {
public static final String module = SearchWorker.class.getName();
- private static final Version LUCENE_VERSION = Version.LUCENE_6_2_1;
+ private static final Version LUCENE_VERSION = Version.LUCENE_6_5_1;
private SearchWorker() {}
@@ -68,7 +68,7 @@ public final class SearchWorker {
public static String getIndexPath(String path) {
String basePath = UtilProperties.getPropertyValue("lucene",
"defaultIndex", "index");
- return (UtilValidate.isNotEmpty(path)? basePath + "/" + path:
basePath);
+ return (UtilValidate.isNotEmpty(path)? basePath + "/" + path +
"/index" : basePath);
}
public static void indexContentList(LocalDispatcher dispatcher,
Delegator delegator, List<String> idList) throws Exception {