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 { |
Free forum by Nabble | Edit this page |