Sandbox-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
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
January 2010
- 4 participants
- 25 discussions
r347 - wikengo_core-wikitty/wikengo_core-wikitty-solr-impl/src/main/java/org/sharengo/wikitty/solr
by kmorin@users.nuiton.org 05 Jan '10
by kmorin@users.nuiton.org 05 Jan '10
05 Jan '10
Author: kmorin
Date: 2010-01-05 15:33:59 +0100 (Tue, 05 Jan 2010)
New Revision: 347
Modified:
wikengo_core-wikitty/wikengo_core-wikitty-solr-impl/src/main/java/org/sharengo/wikitty/solr/WikittySearchEngineSolr.java
Log:
- debug solr conversion
Modified: wikengo_core-wikitty/wikengo_core-wikitty-solr-impl/src/main/java/org/sharengo/wikitty/solr/WikittySearchEngineSolr.java
===================================================================
--- wikengo_core-wikitty/wikengo_core-wikitty-solr-impl/src/main/java/org/sharengo/wikitty/solr/WikittySearchEngineSolr.java 2010-01-05 14:01:10 UTC (rev 346)
+++ wikengo_core-wikitty/wikengo_core-wikitty-solr-impl/src/main/java/org/sharengo/wikitty/solr/WikittySearchEngineSolr.java 2010-01-05 14:33:59 UTC (rev 347)
@@ -138,9 +138,9 @@
} else if (searchField.length >= 2) {
String extName = searchField[0];
String fieldName = searchField[1];
-
if (Criteria.ALL_EXTENSIONS.equals(extName)) {
fqfieldname = SOLR_ALL_EXTENSIONS + "." + fieldName;
+ extName = SOLR_ALL_EXTENSIONS;
}
if (searchField.length >= 3) {
1
0
r346 - in misctestproject/trunk: . src src/main src/main/java src/main/java/org src/main/java/org/nuiton src/main/java/org/nuiton/test src/main/java/org/nuiton/test/layer
by echatellier@users.nuiton.org 05 Jan '10
by echatellier@users.nuiton.org 05 Jan '10
05 Jan '10
Author: echatellier
Date: 2010-01-05 15:01:10 +0100 (Tue, 05 Jan 2010)
New Revision: 346
Added:
misctestproject/trunk/pom.xml
misctestproject/trunk/src/
misctestproject/trunk/src/main/
misctestproject/trunk/src/main/java/
misctestproject/trunk/src/main/java/org/
misctestproject/trunk/src/main/java/org/nuiton/
misctestproject/trunk/src/main/java/org/nuiton/test/
misctestproject/trunk/src/main/java/org/nuiton/test/layer/
misctestproject/trunk/src/main/java/org/nuiton/test/layer/TestBlockingLayer.java
misctestproject/trunk/src/main/java/org/nuiton/test/layer/TestLayer.java
misctestproject/trunk/src/main/java/org/nuiton/test/layer/TestModel.java
Modified:
misctestproject/trunk/
Log:
Initial commit.
Property changes on: misctestproject/trunk
___________________________________________________________________
Added: svn:ignore
+ .settings
target
.classpath
.project
Added: misctestproject/trunk/pom.xml
===================================================================
--- misctestproject/trunk/pom.xml (rev 0)
+++ misctestproject/trunk/pom.xml 2010-01-05 14:01:10 UTC (rev 346)
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <!--The version of maven's project object model-->
+ <modelVersion>4.0.0</modelVersion>
+
+ <!--A unique name for this project-->
+ <groupId>test</groupId>
+ <artifactId>test</artifactId>
+ <name>test</name>
+
+ <!--ejb, jar, war...-->
+ <packaging>jar</packaging>
+
+ <!--Version-->
+ <version>1</version>
+
+ <!--Description-->
+ <description>test</description>
+ <inceptionYear>2009</inceptionYear>
+
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+
+ <!-- Dependencies -->
+ <dependencies>
+
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.1.1</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.4</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-configuration</groupId>
+ <artifactId>commons-configuration</artifactId>
+ <version>1.6</version>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-cli</groupId>
+ <artifactId>commons-cli</artifactId>
+ <version>1.2</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.nuiton</groupId>
+ <artifactId>nuiton-utils</artifactId>
+ <version>1.1.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.14</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <!-- SwingLabs Swing Component Extensions -->
+ <dependency>
+ <groupId>org.swinglabs</groupId>
+ <artifactId>swingx</artifactId>
+ <version>1.6</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.swinglabs</groupId>
+ <artifactId>jxlayer</artifactId>
+ <version>3.0.4</version>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
Added: misctestproject/trunk/src/main/java/org/nuiton/test/layer/TestBlockingLayer.java
===================================================================
--- misctestproject/trunk/src/main/java/org/nuiton/test/layer/TestBlockingLayer.java (rev 0)
+++ misctestproject/trunk/src/main/java/org/nuiton/test/layer/TestBlockingLayer.java 2010-01-05 14:01:10 UTC (rev 346)
@@ -0,0 +1,66 @@
+/* *##%
+ * Copyright (C) 2010 Code Lutin, Chatellier Eric
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * 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 Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package org.nuiton.test.layer;
+
+import java.awt.event.MouseEvent;
+
+import javax.swing.JComponent;
+import javax.swing.JScrollBar;
+import javax.swing.JTable;
+
+import org.jdesktop.jxlayer.JXLayer;
+import org.jdesktop.jxlayer.plaf.AbstractLayerUI;
+
+/**
+ * TODO add comment here.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class TestBlockingLayer extends AbstractLayerUI<JComponent> {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = 1877010363682882308L;
+
+ /*
+ * @see org.jdesktop.jxlayer.plaf.AbstractLayerUI#processMouseEvent(java.awt.event.MouseEvent, org.jdesktop.jxlayer.JXLayer)
+ */
+ @Override
+ protected void processMouseEvent(MouseEvent event,
+ JXLayer<? extends JComponent> layer) {
+
+ if (!(event.getSource() instanceof JScrollBar)) {
+ System.out.println("blocked on " + event.getSource());
+ event.consume();
+ }
+
+ if (event.getSource() instanceof JTable) {
+ JTable tableSource = (JTable)event.getSource();
+ TestModel model = (TestModel)tableSource.getModel();
+
+ int rowIndex = tableSource.rowAtPoint(event.getPoint());
+ int columnIndex = tableSource.columnAtPoint(event.getPoint());
+ Object value = model.getValueAt(rowIndex, columnIndex);
+ System.out.println("Try to click on + " + value);
+ }
+ }
+}
Property changes on: misctestproject/trunk/src/main/java/org/nuiton/test/layer/TestBlockingLayer.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
Added: misctestproject/trunk/src/main/java/org/nuiton/test/layer/TestLayer.java
===================================================================
--- misctestproject/trunk/src/main/java/org/nuiton/test/layer/TestLayer.java (rev 0)
+++ misctestproject/trunk/src/main/java/org/nuiton/test/layer/TestLayer.java 2010-01-05 14:01:10 UTC (rev 346)
@@ -0,0 +1,66 @@
+/* *##%
+ * Copyright (C) 2010 Code Lutin, Chatellier Eric
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * 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 Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package org.nuiton.test.layer;
+
+import javax.swing.JComponent;
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+
+import org.jdesktop.jxlayer.JXLayer;
+
+/**
+ * Test jxlayer.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class TestLayer extends JFrame {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = 8735374368691145269L;
+
+ public static void main(String[] args) {
+ new TestLayer().setVisible(true);
+ }
+
+ public TestLayer() {
+
+ JPanel rootPanel = new JPanel();
+
+ JTable table = new JTable();
+ table.setModel(new TestModel());
+
+ JScrollPane pane = new JScrollPane(table);
+ rootPanel.add(pane);
+
+ TestBlockingLayer layerUI = new TestBlockingLayer();
+ // wrap the panel with JXLayer and the lockableUI
+ JXLayer<JComponent> l = new JXLayer<JComponent>(rootPanel, layerUI);
+
+ this.add(l);
+ this.pack();
+ this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ }
+
+}
Property changes on: misctestproject/trunk/src/main/java/org/nuiton/test/layer/TestLayer.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
Added: misctestproject/trunk/src/main/java/org/nuiton/test/layer/TestModel.java
===================================================================
--- misctestproject/trunk/src/main/java/org/nuiton/test/layer/TestModel.java (rev 0)
+++ misctestproject/trunk/src/main/java/org/nuiton/test/layer/TestModel.java 2010-01-05 14:01:10 UTC (rev 346)
@@ -0,0 +1,76 @@
+/* *##%
+ * Copyright (C) 2010 Code Lutin, Chatellier Eric
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * 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 Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package org.nuiton.test.layer;
+
+import javax.swing.event.TableModelListener;
+import javax.swing.table.TableModel;
+
+/**
+ * TODO add comment here.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class TestModel implements TableModel {
+
+ @Override
+ public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
+ }
+
+ @Override
+ public void removeTableModelListener(TableModelListener l) {
+ }
+
+ @Override
+ public boolean isCellEditable(int rowIndex, int columnIndex) {
+ return true;
+ }
+
+ @Override
+ public Object getValueAt(int rowIndex, int columnIndex) {
+ return rowIndex + "," + columnIndex;
+ }
+
+ @Override
+ public int getRowCount() {
+ return 50;
+ }
+
+ @Override
+ public String getColumnName(int columnIndex) {
+ return "column " + columnIndex;
+ }
+
+ @Override
+ public int getColumnCount() {
+ return 5;
+ }
+
+ @Override
+ public Class<?> getColumnClass(int columnIndex) {
+ return String.class;
+ }
+
+ @Override
+ public void addTableModelListener(TableModelListener l) {
+ }
+}
Property changes on: misctestproject/trunk/src/main/java/org/nuiton/test/layer/TestModel.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
1
0
Author: echatellier
Date: 2010-01-05 15:00:19 +0100 (Tue, 05 Jan 2010)
New Revision: 345
Added:
misctestproject/
misctestproject/trunk/
Log:
Initial import.
1
0
r344 - wikengo_core-wikitty/wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty
by schorlet@users.nuiton.org 05 Jan '10
by schorlet@users.nuiton.org 05 Jan '10
05 Jan '10
Author: schorlet
Date: 2010-01-05 12:49:24 +0100 (Tue, 05 Jan 2010)
New Revision: 344
Modified:
wikengo_core-wikitty/wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty/ExtensionFactory.java
Log:
add method setRequiredExtension
Modified: wikengo_core-wikitty/wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty/ExtensionFactory.java
===================================================================
--- wikengo_core-wikitty/wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty/ExtensionFactory.java 2010-01-05 09:32:25 UTC (rev 343)
+++ wikengo_core-wikitty/wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty/ExtensionFactory.java 2010-01-05 11:49:24 UTC (rev 344)
@@ -35,4 +35,8 @@
fields.put(fieldName, fieldType);
}
+ public void setRequiredExtension(String requiredExtension) {
+ this.requiredExtension = requiredExtension;
+ }
+
}
1
0
r343 - in wikengo_core-wikitty: wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty/search wikengo_core-wikitty-jdbc-impl/src/main/java/org/sharengo/wikitty/jdbc wikengo_core-wikitty-solr-impl/src/main/java/org/sharengo/wikitty/solr
by kmorin@users.nuiton.org 05 Jan '10
by kmorin@users.nuiton.org 05 Jan '10
05 Jan '10
Author: kmorin
Date: 2010-01-05 10:32:25 +0100 (Tue, 05 Jan 2010)
New Revision: 343
Modified:
wikengo_core-wikitty/wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty/AbstractWikittyService.java
wikengo_core-wikitty/wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty/WikittyExtensionStorage.java
wikengo_core-wikitty/wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty/WikittyServiceInMemory.java
wikengo_core-wikitty/wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty/search/Element.java
wikengo_core-wikitty/wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty/search/Search.java
wikengo_core-wikitty/wikengo_core-wikitty-jdbc-impl/src/main/java/org/sharengo/wikitty/jdbc/WikittyExtensionStorageJDBC.java
wikengo_core-wikitty/wikengo_core-wikitty-jdbc-impl/src/main/java/org/sharengo/wikitty/jdbc/WikittyStorageJDBC.java
wikengo_core-wikitty/wikengo_core-wikitty-solr-impl/src/main/java/org/sharengo/wikitty/solr/Restriction2Solr.java
wikengo_core-wikitty/wikengo_core-wikitty-solr-impl/src/main/java/org/sharengo/wikitty/solr/WikittySearchEngineSolr.java
Log:
- don't remember what I did before holydays... should have commit before leaving but forgot...
Modified: wikengo_core-wikitty/wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty/AbstractWikittyService.java
===================================================================
--- wikengo_core-wikitty/wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty/AbstractWikittyService.java 2009-12-24 13:33:17 UTC (rev 342)
+++ wikengo_core-wikitty/wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty/AbstractWikittyService.java 2010-01-05 09:32:25 UTC (rev 343)
@@ -180,7 +180,7 @@
* @return
*/
public WikittyExtension restoreExtension(String id) {
- WikittyExtension result = getExtensionStorage().restore(id);
+ WikittyExtension result = getExtensionStorage().restore(WikittyExtension.computeName(id), WikittyExtension.computeVersion(id));
return result;
}
Modified: wikengo_core-wikitty/wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty/WikittyExtensionStorage.java
===================================================================
--- wikengo_core-wikitty/wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty/WikittyExtensionStorage.java 2009-12-24 13:33:17 UTC (rev 342)
+++ wikengo_core-wikitty/wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty/WikittyExtensionStorage.java 2010-01-05 09:32:25 UTC (rev 343)
@@ -77,10 +77,12 @@
/**
* Restore one extension from storage, if not found an exception is throw
- * @param id extension id to restore
+ * @param name extension name to restore
+ * @param version extension version to restore
* @return
*/
- public WikittyExtension restore(String id) throws WikittyException;
+ WikittyExtension restore(String name, String version)
+ throws WikittyException;
/**
* Command update
Modified: wikengo_core-wikitty/wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty/WikittyServiceInMemory.java
===================================================================
--- wikengo_core-wikitty/wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty/WikittyServiceInMemory.java 2009-12-24 13:33:17 UTC (rev 342)
+++ wikengo_core-wikitty/wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty/WikittyServiceInMemory.java 2010-01-05 09:32:25 UTC (rev 343)
@@ -209,7 +209,8 @@
return null; //To change body of implemented methods use File | Settings | File Templates.
}
- public WikittyExtension restore(String id) throws WikittyException {
+ public WikittyExtension restore(String name, String version) throws WikittyException {
+ String id = WikittyExtension.computeId(name, version);
WikittyExtension result = extensions.get(id);
if (result == null) {
throw new WikittyException(String.format("No extension with id '%s'", id));
@@ -356,10 +357,14 @@
throw new UnsupportedOperationException("Not supported yet.");
}
- public Map<String, Integer> findAllChildren(Wikitty w) {
+ public Integer findNodeCount(Wikitty w) {
throw new UnsupportedOperationException("Not supported yet.");
}
+ public Map<String, Integer> findAllChildrenCount(Wikitty w) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
}
/**
Modified: wikengo_core-wikitty/wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty/search/Element.java
===================================================================
--- wikengo_core-wikitty/wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty/search/Element.java 2009-12-24 13:33:17 UTC (rev 342)
+++ wikengo_core-wikitty/wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty/search/Element.java 2010-01-05 09:32:25 UTC (rev 343)
@@ -16,8 +16,6 @@
*##%*/
package org.sharengo.wikitty.search;
-import org.sharengo.wikitty.FieldType;
-
import java.io.Serializable;
/**
@@ -32,25 +30,28 @@
/** Represent a element on id */
public static String ELT_ID = "elt_id";
- // serialVersionUID is used for serialization.
- private static final long serialVersionUID = 1L;
+ /** Represent type to search an element */
+ public static enum ElementType {NUMERIC, STRING, WIKITTY, BOOLEAN, TEXT, DATE};
- protected String name;
+ // serialVersionUID is used for serialization.
+ private static final long serialVersionUID = 1L;
- public Element() {
- super();
- }
+ protected String name;
+ public Element() {
+ super();
+ }
+
public Element(String name) {
- this.name = name.replace(" ", FieldType.WORD_SEPARATOR);
+ this.name = name;
}
- public String getName() {
- return name;
- }
+ public String getName() {
+ return name;
+ }
- public void setName(String name) {
- this.name = name.replace(" ", FieldType.WORD_SEPARATOR);
- }
+ public void setName(String name) {
+ this.name = name;
+ }
}
Modified: wikengo_core-wikitty/wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty/search/Search.java
===================================================================
--- wikengo_core-wikitty/wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty/search/Search.java 2009-12-24 13:33:17 UTC (rev 342)
+++ wikengo_core-wikitty/wikengo_core-wikitty-api/src/main/java/org/sharengo/wikitty/search/Search.java 2010-01-05 09:32:25 UTC (rev 343)
@@ -13,23 +13,29 @@
/**
* Helper to create a criteria with a restriction
+ *
+ * Element :
+ * <extensionName>.<fieldName>[.<fieldType>] : search on an extension and field with specific type (optionnal)
+ * Criteria.ALL_EXTENSIONS.<fieldName>.<fieldType> : search on all extension and field name with specific type
+ *
+ * <fieldType> specify seach on field as NUMERIC, STRING, WIKITTY, BOOLEAN, TEXT
*/
public class Search {
static private Log log = LogFactory.getLog(Search.class);
- public enum KIND {
- AND, OR
- }
-
- KIND kind = KIND.AND;
- List<Restriction> restrictions;
+ public enum KIND {
+ AND, OR, NOT
+ }
+
+ KIND kind = KIND.AND;
+ List<Restriction> restrictions;
List<Search> subSearchs;
-
- public Search() {
- restrictions = new ArrayList<Restriction>();
+
+ public Search() {
+ restrictions = new ArrayList<Restriction>();
subSearchs = new ArrayList<Search>();
- }
+ }
/**
* Create Search query with field in wikitty argument
@@ -42,7 +48,7 @@
result.kind = KIND.AND;
// result object must have same extension that wikitty example
for (String extName : wikitty.getExtensionNames()) {
- result.eq(Element.ELT_EXTENSION, extName);
+ result.eq(Element.ELT_EXTENSION, extName);
}
for (String fqfieldName : wikitty.fieldNames()) {
@@ -65,133 +71,150 @@
return result;
}
- public static Search query() {
- Search search = new Search();
- search.kind = KIND.AND;
- return search;
- }
+ public static Search query() {
+ Search search = new Search();
+ search.kind = KIND.AND;
+ return search;
+ }
public static Search query(KIND kind) {
- Search search = new Search();
- search.kind = kind;
- return search;
- }
-
+ Search search = new Search();
+ search.kind = kind;
+ return search;
+ }
+
/**
* Create new query on existant criteria to add new constraint to existant
* criteria
* @param criteria
* @return
*/
- public static Search query(Criteria criteria) {
- Search search = query();
+ public static Search query(Criteria criteria) {
+ Search search = query();
search.restrictions.add(criteria.getRestriction());
- return search;
- }
-
- private static Element elt(String element) {
- Element elm = new Element();
- elm.setName(element);
- return elm;
- }
-
- protected Search handle( Restriction dto ) {
- restrictions.add( dto );
- return this;
- }
+ return search;
+ }
- public Search contains(String element, Collection<String> values) {
- return handle( RestrictionHelper.contains(elt(element),
+ private static Element elt(String element) {
+ Element elm = new Element();
+ elm.setName(element);
+ return elm;
+ }
+
+ protected Search handle( Restriction dto ) {
+ restrictions.add( dto );
+ return this;
+ }
+
+ public Search contains(String element, Collection<String> values) {
+ return handle( RestrictionHelper.contains(elt(element),
new ArrayList<String>(values)) );
- }
+ }
- public Search eq(String element, String value) {
- return handle( RestrictionHelper.eq(elt(element), value) );
- }
-
- public Search neq(String element, String value) {
- return handle( RestrictionHelper.neq(elt(element), value) );
- }
+ public Search eq(String element, String value) {
+ return handle( RestrictionHelper.eq(elt(element), value) );
+ }
- public Search gt(String element, String value) {
- return handle( RestrictionHelper.great(elt(element), value) );
- }
-
- public Search ge(String element, String value) {
- return handle( RestrictionHelper.greatEq(elt(element), value) );
- }
-
- public Search lt(String element, String value) {
- return handle( RestrictionHelper.less(elt(element), value) );
- }
-
- public Search le(String element, String value) {
- return handle( RestrictionHelper.lessEq(elt(element), value) );
- }
-
- public Search bw(String element, String lowerValue, String upperValue) {
- return handle( RestrictionHelper.between(elt(element), lowerValue, upperValue) );
- }
-
- public Search sw(String element, String value) {
- return handle( RestrictionHelper.start(elt(element), value) );
- }
+ public Search neq(String element, String value) {
+ return handle( RestrictionHelper.neq(elt(element), value) );
+ }
- public Search nsw(String element, String value) {
- return handle( RestrictionHelper.not(
+ public Search gt(String element, String value) {
+ return handle( RestrictionHelper.great(elt(element), value) );
+ }
+
+ public Search ge(String element, String value) {
+ return handle( RestrictionHelper.greatEq(elt(element), value) );
+ }
+
+ public Search lt(String element, String value) {
+ return handle( RestrictionHelper.less(elt(element), value) );
+ }
+
+ public Search le(String element, String value) {
+ return handle( RestrictionHelper.lessEq(elt(element), value) );
+ }
+
+ public Search bw(String element, String lowerValue, String upperValue) {
+ return handle( RestrictionHelper.between(elt(element), lowerValue, upperValue) );
+ }
+
+ public Search sw(String element, String value) {
+ return handle( RestrictionHelper.start(elt(element), value) );
+ }
+
+ public Search nsw(String element, String value) {
+ return handle( RestrictionHelper.not(
RestrictionHelper.start(elt(element), value)) );
- }
-
- public Search ew(String element, String value) {
- return handle( RestrictionHelper.end(elt(element), value) );
- }
+ }
+ public Search ew(String element, String value) {
+ return handle( RestrictionHelper.end(elt(element), value) );
+ }
+
public Search notew(String element, String value) {
- return handle( RestrictionHelper.not(
+ return handle( RestrictionHelper.not(
RestrictionHelper.end(elt(element), value)) );
- }
+ }
public Search keyword(String value) {
return handle(RestrictionHelper.keyword(value));
}
- public Search or() {
- Search search = Search.query(KIND.OR);
+ public Search not() {
+ Search not = Search.query(KIND.NOT);
+ subSearchs.add(not);
+
+ Search search = Search.query(kind);
+ not.subSearchs.add(search);
+
+ return search;
+ }
+
+ public Search or() {
+ Search search = Search.query(KIND.OR);
subSearchs.add(search);
- return search;
- }
-
- public Search and() {
- Search search = Search.query(KIND.AND);
+ return search;
+ }
+
+ public Search and() {
+ Search search = Search.query(KIND.AND);
subSearchs.add(search);
- return search;
- }
+ return search;
+ }
- public Search associated(String foreignFieldName) {
- Search search = new SubSearch( foreignFieldName, this );
- return search;
- }
-
+ public Search associated(String foreignFieldName) {
+ Search search = new SubSearch( foreignFieldName, this );
+ return search;
+ }
+
/**
* return unnamed criteria
* @return new criteria
*/
- public Criteria criteria(String name) {
- Criteria criteria = new Criteria(name);
- Restriction result = getRestrictions();
+ public Criteria criteria(String name) {
+ Criteria criteria = new Criteria(name);
+ Restriction result = getRestrictions();
criteria.setRestriction(result);
- return criteria;
- }
-
+ return criteria;
+ }
+
protected Restriction getRestrictions() throws UnsupportedOperationException {
Restriction result;
if (restrictions.isEmpty() && subSearchs.isEmpty()) {
result = RestrictionHelper.rFalse();
+
} else if (restrictions.size() == 1 && subSearchs.isEmpty()) {
result = restrictions.remove(0);
+
} else if (subSearchs.size() == 1 && restrictions.isEmpty()) {
Search subSearch = subSearchs.get(0);
result = subSearch.getRestrictions();
+
+ if(kind == KIND.NOT) {
+ result = RestrictionHelper.not(result);
+ }
+
} else {
List<Restriction> allRestrictions = new ArrayList<Restriction>(restrictions);
for (Search subSearch : subSearchs) {
@@ -214,10 +237,9 @@
/**
* return criteria with name
- * @param name name of criteria
* @return new criteria
*/
- public Criteria criteria() {
- return criteria(null);
- }
-}
+ public Criteria criteria() {
+ return criteria(null);
+ }
+}
\ No newline at end of file
Modified: wikengo_core-wikitty/wikengo_core-wikitty-jdbc-impl/src/main/java/org/sharengo/wikitty/jdbc/WikittyExtensionStorageJDBC.java
===================================================================
--- wikengo_core-wikitty/wikengo_core-wikitty-jdbc-impl/src/main/java/org/sharengo/wikitty/jdbc/WikittyExtensionStorageJDBC.java 2009-12-24 13:33:17 UTC (rev 342)
+++ wikengo_core-wikitty/wikengo_core-wikitty-jdbc-impl/src/main/java/org/sharengo/wikitty/jdbc/WikittyExtensionStorageJDBC.java 2010-01-05 09:32:25 UTC (rev 343)
@@ -278,7 +278,7 @@
String extName = adminResultSet.getString(COL_NAME);
String extVersion = getLastVersion(extName);
String extId = WikittyExtension.computeId(extName, extVersion);
- result.add(restore(extId));
+ result.add(restore(WikittyExtension.computeName(extId), WikittyExtension.computeVersion(extId)));
}
} else {
adminResultSet = statement.executeQuery(
@@ -287,7 +287,7 @@
adminResultSet.beforeFirst();
while (adminResultSet.next()) {
String extId = adminResultSet.getString(COL_ID);
- result.add(restore(extId));
+ result.add(restore(WikittyExtension.computeName(extId), WikittyExtension.computeVersion(extId)));
}
}
closeConnection(con);
@@ -340,7 +340,8 @@
}
@Override
- public WikittyExtension restore(String id) throws WikittyException {
+ public WikittyExtension restore(String name, String version) throws WikittyException {
+ String id = WikittyExtension.computeId(name, version);
WikittyExtension result = extensionCache.get(id);
if (result == null) {
Connection con = null;
Modified: wikengo_core-wikitty/wikengo_core-wikitty-jdbc-impl/src/main/java/org/sharengo/wikitty/jdbc/WikittyStorageJDBC.java
===================================================================
--- wikengo_core-wikitty/wikengo_core-wikitty-jdbc-impl/src/main/java/org/sharengo/wikitty/jdbc/WikittyStorageJDBC.java 2009-12-24 13:33:17 UTC (rev 342)
+++ wikengo_core-wikitty/wikengo_core-wikitty-jdbc-impl/src/main/java/org/sharengo/wikitty/jdbc/WikittyStorageJDBC.java 2010-01-05 09:32:25 UTC (rev 343)
@@ -593,7 +593,7 @@
result.setVersion(version);
if (extensionList != null && !"".equals(extensionList)) {
for (String ext : extensionList.split(",")) {
- WikittyExtension extension = extensionStorage.restore(ext);
+ WikittyExtension extension = extensionStorage.restore(WikittyExtension.computeName(ext), WikittyExtension.computeVersion(ext));
result.addExtension(extension);
}
}
Modified: wikengo_core-wikitty/wikengo_core-wikitty-solr-impl/src/main/java/org/sharengo/wikitty/solr/Restriction2Solr.java
===================================================================
--- wikengo_core-wikitty/wikengo_core-wikitty-solr-impl/src/main/java/org/sharengo/wikitty/solr/Restriction2Solr.java 2009-12-24 13:33:17 UTC (rev 342)
+++ wikengo_core-wikitty/wikengo_core-wikitty-solr-impl/src/main/java/org/sharengo/wikitty/solr/Restriction2Solr.java 2010-01-05 09:32:25 UTC (rev 343)
@@ -8,6 +8,7 @@
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.response.QueryResponse;
+import org.apache.solr.client.solrj.util.ClientUtils;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.sharengo.wikitty.WikittyException;
@@ -34,21 +35,16 @@
/**
* @author "Nicolas Chapurlat" <nicolas.chapurlat(a)logica.com>
* @author "Guillaume Dufrêne" <dufrene(a)argia.fr>
- *
+ *
* This class is used to parse Restriction to create lucene request on
* content. Every operators describe in RestrictionName is handle. Parsing may
* throw exception when restriction parameters are incorrect.
*/
public class Restriction2Solr {
-
- private static final int MAX_SUBQUERY_RESULT = 100;
- /** use to permit client to modify fieldname during query generation */
- static public interface FieldModifier {
- public String convertToSolr(String fieldname);
- public String convertToField(String solrName);
- }
- final static protected FieldModifier dummyFieldModifier = new FieldModifier() {
+ private static final int MAX_SUBQUERY_RESULT = 100;
+
+ final static protected WikittySearchEngineSolr.FieldModifier dummyFieldModifier = new WikittySearchEngineSolr.FieldModifier() {
public String convertToSolr(String fieldname) {
return fieldname;
}
@@ -57,331 +53,323 @@
}
};
- protected FieldModifier fieldModifer;
+ protected WikittySearchEngineSolr.FieldModifier fieldModifer;
public Restriction2Solr() {
this(dummyFieldModifier);
}
- public Restriction2Solr(FieldModifier fieldModifer) {
+ public Restriction2Solr(WikittySearchEngineSolr.FieldModifier fieldModifer) {
this.fieldModifer = fieldModifer;
}
public String toSolr(Restriction restriction) {
- return toSolr(restriction, null);
+ return toSolr(restriction, null);
}
-
- public String toSolr(Restriction restriction, SolrServer solr)
- throws WikittyException {
- // ParameterValidator.checkNullParameter(restriction, "restriction");
- switch (restriction.getName()) {
- case TRUE:
- return true2solr();
- case FALSE:
- return false2solr();
- case NOT:
- Not not = (Not) restriction;
- return not2solr(not);
- case AND:
- And and = (And) restriction;
- return and2solr(and);
- case OR:
- Or or = (Or) restriction;
- return or2solr(or);
- case EQUALS:
- Equals eq = (Equals) restriction;
- return eq2solr(eq);
- case NOT_EQUALS:
- NotEquals neq = (NotEquals) restriction;
- return neq2solr(neq);
- case LESS:
- Less less = (Less) restriction;
- return less2solr(less);
- case LESS_OR_EQUAL:
- LessOrEqual lessEq = (LessOrEqual) restriction;
- return lessEq2solr(lessEq);
- case GREATER:
- Greater great = (Greater) restriction;
- return great2solr(great);
- case GREATER_OR_EQUAL:
- GreaterOrEqual greatEq = (GreaterOrEqual) restriction;
- return greatEq2solr(greatEq);
- case BETWEEN:
- Between between = (Between) restriction;
- return between2solr(between);
- case CONTAINS:
- Contains contains = (Contains) restriction;
- return contains2solr(contains);
- case IN:
- In in = (In) restriction;
- return in2solr(in);
- case STARTS_WITH:
- StartsWith start = (StartsWith) restriction;
- return start2solr(start);
- case ENDS_WITH:
- EndsWith end = (EndsWith) restriction;
- return end2solr(end);
- case ASSOCIATED:
- AssociatedRestriction associated = (AssociatedRestriction) restriction;
- return associated2solr(associated, solr);
+
+ public String toSolr(Restriction restriction, SolrServer solr)
+ throws WikittyException {
+ // ParameterValidator.checkNullParameter(restriction, "restriction");
+ switch (restriction.getName()) {
+ case TRUE:
+ return true2solr();
+ case FALSE:
+ return false2solr();
+ case NOT:
+ Not not = (Not) restriction;
+ return not2solr(not);
+ case AND:
+ And and = (And) restriction;
+ return and2solr(and);
+ case OR:
+ Or or = (Or) restriction;
+ return or2solr(or);
+ case EQUALS:
+ Equals eq = (Equals) restriction;
+ return eq2solr(eq);
+ case NOT_EQUALS:
+ NotEquals neq = (NotEquals) restriction;
+ return neq2solr(neq);
+ case LESS:
+ Less less = (Less) restriction;
+ return less2solr(less);
+ case LESS_OR_EQUAL:
+ LessOrEqual lessEq = (LessOrEqual) restriction;
+ return lessEq2solr(lessEq);
+ case GREATER:
+ Greater great = (Greater) restriction;
+ return great2solr(great);
+ case GREATER_OR_EQUAL:
+ GreaterOrEqual greatEq = (GreaterOrEqual) restriction;
+ return greatEq2solr(greatEq);
+ case BETWEEN:
+ Between between = (Between) restriction;
+ return between2solr(between);
+ case CONTAINS:
+ Contains contains = (Contains) restriction;
+ return contains2solr(contains);
+ case IN:
+ In in = (In) restriction;
+ return in2solr(in);
+ case STARTS_WITH:
+ StartsWith start = (StartsWith) restriction;
+ return start2solr(start);
+ case ENDS_WITH:
+ EndsWith end = (EndsWith) restriction;
+ return end2solr(end);
+ case ASSOCIATED:
+ AssociatedRestriction associated = (AssociatedRestriction) restriction;
+ return associated2solr(associated, solr);
case KEYWORD:
Keyword keyword = (Keyword) restriction;
return keyword2solr(keyword);
- default:
- throw new WikittyException("this kind of restriction is not supported : "
- + restriction.getName().toString());
- }
- }
+ default:
+ throw new WikittyException("this kind of restriction is not supported : "
+ + restriction.getName().toString());
+ }
+ }
- private String in2solr(In in) {
- boolean first = true;
- String result = in.getElement().getName() + ":[";
- for( String value : in.getValue() ) {
- if ( !first ) { result += ", "; first = false; }
- result += value;
- }
- result +="]";
- return result;
- }
+ private String in2solr(In in) {
+ boolean first = true;
+ String result = in.getElement().getName() + ":[";
+ for( String value : in.getValue() ) {
+ if ( !first ) { result += ", "; first = false; }
+ result += value;
+ }
+ result +="]";
+ return result;
+ }
- private String associated2solr(AssociatedRestriction associated, SolrServer solr) throws WikittyException {
- String subQuery = toSolr( associated.getRestriction() );
- SolrQuery query = new SolrQuery(WikittySearchEngineSolr.SOLR_QUERY_PARSER + subQuery);
+ private String associated2solr(AssociatedRestriction associated, SolrServer solr) throws WikittyException {
+ String subQuery = toSolr( associated.getRestriction() );
+ SolrQuery query = new SolrQuery(WikittySearchEngineSolr.SOLR_QUERY_PARSER + subQuery);
query.setRows(MAX_SUBQUERY_RESULT);
QueryResponse resp = null;
try {
- resp = solr.query(query);
- } catch (SolrServerException e) {
- throw new WikittyException("Unable to execute associative query on " + associated.getElement().getName(), e);
- }
+ resp = solr.query(query);
+ } catch (SolrServerException e) {
+ throw new WikittyException("Unable to execute associative query on " + associated.getElement().getName(), e);
+ }
SolrDocumentList solrResults = resp.getResults();
-
+
Restriction generatedRestriction = null;
long size = solrResults.size();
if ( size == 0 ) {
- throw new WikittyException("Associated " + associated.getElement().getName() + " do not retrieved any result");
+ throw new WikittyException("Associated " + associated.getElement().getName() + " do not retrieved any result");
}
if ( size == 1 ) {
- generatedRestriction = RestrictionHelper.eq( associated.getElement(), (String) solrResults.get(0).getFieldValue(WikittySearchEngineSolr.SOLR_ID) );
+ generatedRestriction = RestrictionHelper.eq( associated.getElement(), (String) solrResults.get(0).getFieldValue(WikittySearchEngineSolr.SOLR_ID) );
} else {
- List<String> ids = new ArrayList<String>(solrResults.size());
- for (SolrDocument doc : solrResults) {
- String id = (String) doc.getFieldValue(WikittySearchEngineSolr.SOLR_ID);
- ids.add(id);
- }
- generatedRestriction = new In(associated.getElement(), ids);
+ List<String> ids = new ArrayList<String>(solrResults.size());
+ for (SolrDocument doc : solrResults) {
+ String id = (String) doc.getFieldValue(WikittySearchEngineSolr.SOLR_ID);
+ ids.add(id);
+ }
+ generatedRestriction = new In(associated.getElement(), ids);
}
Restriction parent = associated.getParentRestrictionDto();
And and;
if ( parent instanceof And ) {
- and = (And) parent;
- and.getRestrictions().add( generatedRestriction );
+ and = (And) parent;
+ and.getRestrictions().add( generatedRestriction );
} else {
- and = RestrictionHelper.and( Arrays.asList(new Restriction[]{ associated.getParentRestrictionDto(), generatedRestriction }) );
+ and = RestrictionHelper.and( Arrays.asList(new Restriction[]{ associated.getParentRestrictionDto(), generatedRestriction }) );
}
- return toSolr(and);
- }
+ return toSolr(and);
+ }
- private String not2solr(Not not) throws WikittyException {
- if (not.getRestriction() == null) {
- throw new WikittyException( "not.restriction" );
- }
- return "( *:* - " + toSolr(not.getRestriction()) + " )";
- }
+ private String not2solr(Not not) throws WikittyException {
+ if (not.getRestriction() == null) {
+ throw new WikittyException( "not.restriction" );
+ }
+ return "( *:* - " + toSolr(not.getRestriction()) + " )";
+ }
- private String and2solr(And and) throws WikittyException {
- if (and.getRestrictions() == null) {
- throw new WikittyException( "and.restrictions is null" );
- }
- if (and.getRestrictions().size() < 2) {
- throw new WikittyException( "AND is an operator that handle 2 operand at least");
- }
- boolean first = true;
- StringBuffer result = new StringBuffer();
- for (Restriction restriction : and.getRestrictions()) {
- if (first) {
- result.append("( ").append(toSolr(restriction));
- first = false;
- } else {
- result.append(" AND ").append(toSolr(restriction));
- }
- }
- return result.append(" )").toString();
- }
+ private String and2solr(And and) throws WikittyException {
+ if (and.getRestrictions() == null) {
+ throw new WikittyException( "and.restrictions is null" );
+ }
+ if (and.getRestrictions().size() < 2) {
+ throw new WikittyException( "AND is an operator that handle 2 operand at least");
+ }
+ boolean first = true;
+ StringBuffer result = new StringBuffer();
+ for (Restriction restriction : and.getRestrictions()) {
+ if (first) {
+ result.append("( ").append(toSolr(restriction));
+ first = false;
+ } else {
+ result.append(" AND ").append(toSolr(restriction));
+ }
+ }
+ return result.append(" )").toString();
+ }
- private String or2solr(Or or) throws WikittyException {
- if (or.getRestrictions() == null) {
- throw new WikittyException("or.restrictions is null");
- }
- if (or.getRestrictions().size() < 2) {
- throw new WikittyException("OR is an operator that handle 2 operand at least");
- }
- boolean first = true;
- StringBuffer result = new StringBuffer();
- for (Restriction restriction : or.getRestrictions()) {
- if (first) {
- result.append("( ");
- first = false;
- } else {
- result.append(" OR ");
- }
- result.append(toSolr(restriction));
- }
- return result.append(" )").toString();
- }
+ private String or2solr(Or or) throws WikittyException {
+ if (or.getRestrictions() == null) {
+ throw new WikittyException("or.restrictions is null");
+ }
+ if (or.getRestrictions().size() < 2) {
+ throw new WikittyException("OR is an operator that handle 2 operand at least");
+ }
+ boolean first = true;
+ StringBuffer result = new StringBuffer();
+ for (Restriction restriction : or.getRestrictions()) {
+ if (first) {
+ result.append("( ");
+ first = false;
+ } else {
+ result.append(" OR ");
+ }
+ result.append(toSolr(restriction));
+ }
+ return result.append(" )").toString();
+ }
- private String eq2solr(Equals eq) throws WikittyException {
- return element2solr(eq.getElement()) + ":" + value2solr(eq.getValue());
- }
+ private String eq2solr(Equals eq) throws WikittyException {
+ return element2solr(eq.getElement()) + ":" + value2solr(eq.getValue());
+ }
- private String neq2solr(NotEquals neq)
- throws WikittyException {
- return "-" + element2solr(neq.getElement()) + ":"
- + value2solr(neq.getValue());
- }
+ private String neq2solr(NotEquals neq)
+ throws WikittyException {
+ return "-" + element2solr(neq.getElement()) + ":"
+ + value2solr(neq.getValue());
+ }
- private String less2solr(Less less) throws WikittyException {
- return element2solr(less.getElement()) + ":{* TO "
- + value2solr(less.getValue()) + "}";
- }
+ private String less2solr(Less less) throws WikittyException {
+ return element2solr(less.getElement()) + ":{* TO "
+ + value2solr(less.getValue()) + "}";
+ }
- private String lessEq2solr(LessOrEqual lessEq)
- throws WikittyException {
- return element2solr(lessEq.getElement()) + ":[* TO "
- + value2solr(lessEq.getValue()) + "]";
- }
+ private String lessEq2solr(LessOrEqual lessEq)
+ throws WikittyException {
+ return element2solr(lessEq.getElement()) + ":[* TO "
+ + value2solr(lessEq.getValue()) + "]";
+ }
- private String great2solr(Greater great)
- throws WikittyException {
- return element2solr(great.getElement()) + ":{"
- + value2solr(great.getValue()) + " TO *}";
- }
+ private String great2solr(Greater great)
+ throws WikittyException {
+ return element2solr(great.getElement()) + ":{"
+ + value2solr(great.getValue()) + " TO *}";
+ }
- private String greatEq2solr(GreaterOrEqual greatEq)
- throws WikittyException {
- return element2solr(greatEq.getElement()) + ":["
- + value2solr(greatEq.getValue()) + " TO *]";
- }
+ private String greatEq2solr(GreaterOrEqual greatEq)
+ throws WikittyException {
+ return element2solr(greatEq.getElement()) + ":["
+ + value2solr(greatEq.getValue()) + " TO *]";
+ }
- private String between2solr(Between between)
- throws WikittyException {
- if (between.getElement() == null) {
- throw new WikittyException("contains.element");
- }
- if (between.getMin() == null) {
- throw new WikittyException("contains.min");
- }
- if (between.getMax() == null) {
- throw new WikittyException("contains.max");
- }
- return element2solr(between.getElement()) + ":["
- + value2solr(between.getMin()) + " TO "
- + value2solr(between.getMax()) + "]";
- }
+ private String between2solr(Between between)
+ throws WikittyException {
+ if (between.getElement() == null) {
+ throw new WikittyException("contains.element");
+ }
+ if (between.getMin() == null) {
+ throw new WikittyException("contains.min");
+ }
+ if (between.getMax() == null) {
+ throw new WikittyException("contains.max");
+ }
+ return element2solr(between.getElement()) + ":["
+ + value2solr(between.getMin()) + " TO "
+ + value2solr(between.getMax()) + "]";
+ }
- private String contains2solr(Contains contains)
- throws WikittyException {
- if (contains.getElement() == null) {
- throw new WikittyException("contains.element");
- }
- if (contains.getValue() == null) {
- throw new WikittyException("contains.values");
- }
- if (contains.getValue().size() < 1) {
- throw new WikittyException("CONTAINS is an operator that handle 1 operand at least");
- }
+ private String contains2solr(Contains contains)
+ throws WikittyException {
+ if (contains.getElement() == null) {
+ throw new WikittyException("contains.element");
+ }
+ if (contains.getValue() == null) {
+ throw new WikittyException("contains.values");
+ }
+ if (contains.getValue().size() < 1) {
+ throw new WikittyException("CONTAINS is an operator that handle 1 operand at least");
+ }
String operand = "";
- StringBuffer result = new StringBuffer();
+ StringBuffer result = new StringBuffer();
result.append("(");
- for (String value : contains.getValue()) {
+ for (String value : contains.getValue()) {
result.append(operand);
- result.append(element2solr(contains.getElement()))
- .append(":").append(value2solr(value));
+ result.append(element2solr(contains.getElement()))
+ .append(":").append(value2solr(value));
operand = " OR ";
- }
+ }
result.append(")");
- return result.toString();
- }
+ return result.toString();
+ }
- private String start2solr(StartsWith start)
- throws WikittyException {
- return element2solr(start.getElement()) + ":"
- + value2solr(start.getValue(), true, false);
- }
+ private String start2solr(StartsWith start)
+ throws WikittyException {
+ return element2solr(start.getElement()) + ":"
+ + value2solr(start.getValue(), true, false);
+ }
- private String end2solr(EndsWith end) {
- return element2solr(end.getElement()) + ":" + value2solr(end.getValue());
- }
+ private String end2solr(EndsWith end) {
+ return element2solr(end.getElement()) + ":" + value2solr(end.getValue());
+ }
- private String true2solr() {
- return "( *:* )";
- }
+ private String true2solr() {
+ return "( *:* )";
+ }
- private String false2solr() {
- return "( *:* - *:* )";
- }
+ private String false2solr() {
+ return "( *:* - *:* )";
+ }
private String keyword2solr(Keyword keyword) {
return value2solr(keyword.getValue());
}
- private String value2solr(String value) {
- return value2solr(value, false, false);
- }
+ private String value2solr(String value) {
+ return value2solr(value, false, false);
+ }
- private String value2solr(String value, boolean starOnEnd,
- boolean revert) {
- String result;
- if (value != null) {
- if (value.equals("*")) {
- return "*";
- }
+ private String value2solr(String value, boolean starOnEnd,
+ boolean revert) {
+ String result;
+ if (value != null) {
+ if (value.equals("*")) {
+ return "*";
+ }
- if (revert) {
- result = Restriction2Solr.escapeValue(reverse(value));
- } else {
- result = Restriction2Solr.escapeValue(value);
- }
- } else {
- result = "";
- }
- if (starOnEnd) {
- result += "*";
- }
- if (result.contains(" ")) {
- result = "\"" + result + "\"";
- }
- return result;
- }
-
- private String element2solr(Element element) throws WikittyException {
- String result = element.getName();
- if(Element.ELT_EXTENSION.equals(result)) {
- result = WikittySearchEngineSolr.SOLR_EXTENSIONS;
- } else if(Element.ELT_ID.equals(result)) {
- result = WikittySearchEngineSolr.SOLR_ID;
+ if (revert) {
+ result = Restriction2Solr.escapeValue(reverse(value));
+ } else {
+ result = Restriction2Solr.escapeValue(value);
+ }
} else {
- result = element.getName();
+ result = "";
}
+ if (starOnEnd) {
+ result += "*";
+ }
+ if (result.contains(" ")) {
+ result = "\"" + result + "\"";
+ }
+ return result;
+ }
+
+ private String element2solr(Element element) throws WikittyException {
+ String result = element.getName();
result = fieldModifer.convertToSolr(result);
return result;
- }
+ }
- private static String escapeValue(String value) {
- final String LUCENE_REPLACE_PATTERN = "\\+" + "|-" + "|&&" + "|\\|"
- + "|!" + "|\\(|\\)" + "|\\[|\\]" + "|\\{|\\}" + "|\"" + "|:";
- return value.replaceAll(LUCENE_REPLACE_PATTERN, "\\\\$0");
- }
+ private static String escapeValue(String value) {
+ final String LUCENE_REPLACE_PATTERN = "\\+" + "|-" + "|&&" + "|\\|"
+ + "|!" + "|\\(|\\)" + "|\\[|\\]" + "|\\{|\\}" + "|\"" + "|:";
+ return value.replaceAll(LUCENE_REPLACE_PATTERN, "\\\\$0");
+ }
- private String reverse(String source) {
- int i, len = source.length();
- StringBuffer dest = new StringBuffer(len);
+ private String reverse(String source) {
+ int i, len = source.length();
+ StringBuffer dest = new StringBuffer(len);
- for (i = (len - 1); i >= 0; i--) {
- dest.append(source.charAt(i));
+ for (i = (len - 1); i >= 0; i--) {
+ dest.append(source.charAt(i));
}
- return dest.toString();
- }
+ return dest.toString();
+ }
}
-
Modified: wikengo_core-wikitty/wikengo_core-wikitty-solr-impl/src/main/java/org/sharengo/wikitty/solr/WikittySearchEngineSolr.java
===================================================================
--- wikengo_core-wikitty/wikengo_core-wikitty-solr-impl/src/main/java/org/sharengo/wikitty/solr/WikittySearchEngineSolr.java 2009-12-24 13:33:17 UTC (rev 342)
+++ wikengo_core-wikitty/wikengo_core-wikitty-solr-impl/src/main/java/org/sharengo/wikitty/solr/WikittySearchEngineSolr.java 2010-01-05 09:32:25 UTC (rev 343)
@@ -1,16 +1,16 @@
/* *##%
* Copyright (c) 2009 poussin. All rights reserved.
- *
+ *
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU 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 Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
@@ -58,6 +58,7 @@
import org.sharengo.wikitty.WikittyExtensionStorage;
import org.sharengo.wikitty.WikittySearchEngine;
import org.sharengo.wikitty.WikittyTransaction;
+import org.sharengo.wikitty.search.Element;
import org.sharengo.wikitty.search.Search;
/**
@@ -70,6 +71,7 @@
*/
public class WikittySearchEngineSolr implements WikittySearchEngine {
+
/** to use log facility, just put in your code: log.info(\"...\"); */
static private Log log = LogFactory.getLog(WikittySearchEngineSolr.class);
@@ -111,7 +113,13 @@
}
}
- static protected class TypeFieldModifer implements Restriction2Solr.FieldModifier {
+ /** use to permit client to modify fieldname during query generation */
+ static public interface FieldModifier {
+ public String convertToSolr(String fieldname);
+ public String convertToField(String solrName);
+ }
+
+ static protected class TypeFieldModifer implements FieldModifier {
protected WikittyExtensionStorage extensionStorage;
public TypeFieldModifer(WikittyExtensionStorage extensionStorage) {
this.extensionStorage = extensionStorage;
@@ -121,39 +129,42 @@
String result = fqfieldname;
String[] searchField = fqfieldname.split("\\.");
- if (searchField.length == 2) {
+ if (Element.ELT_EXTENSION.equals(fqfieldname)) {
+ result = SOLR_EXTENSIONS;
+
+ } else if (Element.ELT_ID.equals(fqfieldname)) {
+ result = SOLR_ID;
+
+ } else if (searchField.length >= 2) {
String extName = searchField[0];
String fieldName = searchField[1];
- String version = extensionStorage.getLastVersion(extName);
- if (version != null) { // not valid extension is version == null
- WikittyExtension ext = extensionStorage.restore(
- WikittyExtension.computeId(extName, version));
- FieldType type = ext.getFieldType(fieldName.replace(" ", "_"));
- if (type != null) { // type can be null if extension version differ
- result = WikittySearchEngineSolr.getSolrFieldName(
- fqfieldname, type);
+ if (Criteria.ALL_EXTENSIONS.equals(extName)) {
+ fqfieldname = SOLR_ALL_EXTENSIONS + "." + fieldName;
+ }
+
+ if (searchField.length >= 3) {
+ String fieldNameType = searchField[2];
+
+ if (Element.ElementType.TEXT.name().equals(fieldNameType)) {
+ result = extName + "." + fieldName + "_s_t";
} else {
- log.debug(String.format(
- "Field '%s' could not be found in '%s'",
- fqfieldname, extName));
+ TYPE type = FieldType.TYPE.valueOf(fieldNameType);
+ result = WikittySearchEngineSolr.getSolrFieldName(fqfieldname, type);
}
- } else {
- log.warn("No version for extension " + extName);
+ return result;
}
- }
- if (searchField.length == 3) {
- String extName = searchField[0];
- String fieldName = searchField[1];
- String fieldType = searchField[2];
-
- if(Criteria.ALL_EXTENSIONS.equals(extName)) {
- TYPE type = FieldType.TYPE.valueOf(fieldType);
- String solrFieldName = SOLR_ALL_EXTENSIONS + "." + fieldName;
- result = WikittySearchEngineSolr.getSolrFieldName(solrFieldName, type);
- } else {
- log.warn("All extension not found " + extName);
+ // Search type of field in extension
+ String version = extensionStorage.getLastVersion(extName);
+ if (version != null) { // not valid extension is version == null
+ WikittyExtension ext = extensionStorage.restore(extName, version);
+ FieldType fieldType = ext.getFieldType(fieldName);
+ if (fieldType != null) { // type can be null if extension version differ
+ TYPE type = fieldType.getType();
+ result = WikittySearchEngineSolr.getSolrFieldName(fqfieldname, type);
+ return result;
+ }
}
}
@@ -161,10 +172,12 @@
}
public String convertToField(String solrName) {
- String fieldname = solrName.replaceAll("(_b$)|(_dt$)|(_t$)|(_l$)", "");
- return fieldname;
+ String fieldName = solrName.replaceAll("(_b$)|(_dt$)|(_s$)|(_s_t$)|(_d$)", "");
+ if(SOLR_EXTENSIONS.equals(fieldName)) {
+ fieldName = Element.ELT_EXTENSION;
+ }
+ return fieldName;
}
-
}
protected static class ReindexChildTreeNode extends HashSet<String> {
@@ -230,7 +243,7 @@
protected TypeFieldModifer fieldModifier;
public WikittySearchEngineSolr(WikittyExtensionStorage extensionStorage) {
- this(extensionStorage, null);
+ this(extensionStorage, null);
}
public WikittySearchEngineSolr(WikittyExtensionStorage extensionStorage, String dataDir) {
@@ -280,7 +293,7 @@
Collection<Wikitty> wikitties) {
List<Command> result = new ArrayList<Command>(wikitties.size());
ReindexChildTreeNode reindexChildTreeNode = ReindexChildTreeNode.getReindexChildTreeNode(transaction);
-
+
for (Wikitty w : wikitties) {
if(w.hasExtension(TreeNode.EXT_TREENODE)) {
@@ -294,12 +307,12 @@
SolrDocument treeNodeDoc = findById(treeNodeId);
if(treeNodeDoc != null) {
Collection oldChildren = treeNodeDoc.
- getFieldValues(TreeNode.FQ_FIELD_CHILDREN + "_t");
+ getFieldValues(TreeNode.FQ_FIELD_CHILDREN + "_s");
if(oldChildren != null) {
reindexChildTreeNode.addAll(oldChildren);
}
}
-
+
}
result.add(new CommandSolr(w));
@@ -330,7 +343,7 @@
} catch (Exception eee) {
throw new WikittyException(eee);
}
-
+
return result;
}
@@ -360,7 +373,7 @@
solrServer.add(doc);
}
solrServer.commit();
-
+
// no specific result needed
UpdateResponse result = new UpdateResponse();
return result;
@@ -380,15 +393,15 @@
int firstIndex = criteria.getFirstIndex();
int endIndex = criteria.getEndIndex();
- query.setStart(firstIndex);
- int nbRows;
- if (endIndex == -1) {
- // WARNING It is necessary to substract 'start' otherwise, there is a capacity overlow in solR
- nbRows = Integer.MAX_VALUE - firstIndex;
- } else {
- nbRows = endIndex - firstIndex + 1;
- }
- query.setRows(nbRows);
+ query.setStart(firstIndex);
+ int nbRows;
+ if (endIndex == -1) {
+ // WARNING It is necessary to substract 'start' otherwise, there is a capacity overlow in solR
+ nbRows = Integer.MAX_VALUE - firstIndex;
+ } else {
+ nbRows = endIndex - firstIndex + 1;
+ }
+ query.setRows(nbRows);
// Add sorting
List<String> sortAscending = criteria.getSortAscending();
@@ -398,7 +411,7 @@
query.setSortField(tranform, SolrQuery.ORDER.asc);
}
}
-
+
List<String> sortDescending = criteria.getSortDescending();
if(sortDescending != null) {
for (String sort : sortDescending) {
@@ -415,11 +428,11 @@
// use to map query string to criteria facet name
Map<String, String> facetQueryToName = new HashMap<String, String>();
- if ((facetField != null && !facetField.isEmpty())
+ if ((facetField != null && !facetField.isEmpty())
|| (facetCriteria != null && !facetCriteria.isEmpty())) {
- query.setFacet(true);
- query.setFacetMinCount(1);
- // query.setFacetLimit(8); // no limit actualy
+ query.setFacet(true);
+ query.setFacetMinCount(1);
+ // query.setFacetLimit(8); // no limit actualy
// field facetisation
if (facetField != null) {
@@ -438,12 +451,12 @@
query.addFacetQuery(queryFacet);
}
}
- }
+ }
- QueryResponse resp = solrServer.query(query);
- SolrDocumentList solrResults = resp.getResults();
+ QueryResponse resp = solrServer.query(query);
+ SolrDocumentList solrResults = resp.getResults();
- Map<String, List<FacetTopic>> facets = new HashMap<String, List<FacetTopic>>();
+ Map<String, List<FacetTopic>> facets = new HashMap<String, List<FacetTopic>>();
if (facetField != null && !facetField.isEmpty()) {
for (FacetField facet : resp.getFacetFields()) {
String facetName = fieldModifier.convertToField(facet.getName());
@@ -476,20 +489,20 @@
}
}
- List<String> ids = new ArrayList<String>(solrResults.size());
- for (SolrDocument doc : solrResults) {
- String id = (String) doc.getFieldValue(SOLR_ID);
- ids.add(id);
- }
+ List<String> ids = new ArrayList<String>(solrResults.size());
+ for (SolrDocument doc : solrResults) {
+ String id = (String) doc.getFieldValue(SOLR_ID);
+ ids.add(id);
+ }
int numFound = (int)resp.getResults().getNumFound();
PagedResult<String> result = new PagedResult<String>(
firstIndex, numFound, queryString, facets, ids);
- return result;
- } catch (SolrServerException e) {
- throw new WikittyException(e);
- }
+ return result;
+ } catch (SolrServerException e) {
+ throw new WikittyException(e);
+ }
}
public Integer findNodeCount(Wikitty w) {
@@ -510,16 +523,17 @@
return numFound;
}
+
public Map<String, Integer> findAllChildrenCount(Wikitty w) {
String wikittyId = w.getId();
-
+
String parent = w.getFieldAsWikitty(TreeNode.EXT_TREENODE, TreeNode.FIELD_PARENT);
if(parent == null) {
parent = TREENODE_ROOT;
} else {
parent = TREENODE_PREFIX + parent;
}
-
+
// Find count with facet, if the node not contain recurcively content,
// the node not found with facet
Criteria criteria = Search.query().eq(parent, wikittyId).criteria()
@@ -565,42 +579,44 @@
SolrInputDocument doc = new SolrInputDocument();
String id = w.getId();
- doc.addField(SOLR_ID,id);
+ doc.addField(SOLR_ID, id);
for (String name : w.getExtensionNames()) {
doc.addField(SOLR_EXTENSIONS, name);
}
for (String fqfieldName : w.fieldNames()) {
- FieldType type = w.getFieldType(fqfieldName);
- // do not index wikitty field reference
-// if (type.getType() == FieldType.TYPE.WIKITTY) {
-// continue;
-// }
- String solrFqFieldName = getSolrFieldName(fqfieldName, type );
- String[] extAndName = solrFqFieldName.split("\\.");
- String solrFieldName = SOLR_ALL_EXTENSIONS + "." + extAndName[1];
- if (type.isCollection()) {
- Collection collection = (Collection) w.getFqField(fqfieldName);
- if (collection != null) {
- for (Object objectValue : collection) {
- if (objectValue != null) {
- // String value = WikittyUtil.toString(type, objectValue);
- Object value = objectValue;
- doc.addField(solrFqFieldName, value);
- doc.addField(solrFieldName, value);
- }
- }
+ FieldType fieldType = w.getFieldType(fqfieldName);
+ TYPE type = fieldType.getType();
+ String solrFqFieldName = getSolrFieldName(fqfieldName, type);
+
+ String[] solrFieldName = solrFqFieldName.split("\\.");
+ String solrAllFieldName = SOLR_ALL_EXTENSIONS + "." + solrFieldName[1];
+
+ Object objectValue = w.getFqField(fqfieldName);
+ if(objectValue != null) {
+ if (fieldType.isCollection()) {
+ Collection collectionValue = (Collection) objectValue;
+ for (Object itemValue : collectionValue) {
+ if (itemValue != null) {
+ doc.addField(solrFqFieldName, itemValue);
+ doc.addField(solrAllFieldName, itemValue);
+
+ log.debug("index field " + solrFqFieldName + " with value '" + itemValue + "'");
+ }
+ }
+ } else {
+ doc.addField(solrFqFieldName, objectValue);
+ doc.addField(solrAllFieldName, objectValue);
+
+ // Store as text field
+ if(type == TYPE.STRING) {
+ doc.addField(solrFqFieldName + "_t", objectValue);
+ doc.addField(solrAllFieldName + "_t", objectValue);
+ }
+
+ log.debug("index field " + solrFqFieldName + " with value '" + objectValue + "'");
}
- } else {
- Object objectValue = w.getFqField(fqfieldName);
- if (objectValue != null) {
- // String value = WikittyUtil.toString(type, objectValue);
- Object value = objectValue;
- log.debug("index field " + solrFqFieldName + " with value '" + value + "'");
- doc.addField(solrFqFieldName, value);
- doc.addField(solrFieldName, value);
- }
}
}
return doc;
@@ -615,11 +631,11 @@
doc.setField(TREENODE_CHILD, childId);
// Find all node contain child
- SolrQuery query = new SolrQuery(SOLR_QUERY_PARSER + TreeNode.FQ_FIELD_CHILDREN + "_t:" + childId);
+ SolrQuery query = new SolrQuery(SOLR_QUERY_PARSER + TreeNode.FQ_FIELD_CHILDREN + "_s:" + childId);
QueryResponse response = solrServer.query(query);
SolrDocumentList updateDocs = response.getResults();
- List<String> paths = new ArrayList<String>();
+ Map<String, String> paths = new HashMap<String, String>();
for (Iterator<SolrDocument> iterator = updateDocs.iterator();
iterator.hasNext();) {
SolrDocument solrDocument = iterator.next();
@@ -631,70 +647,23 @@
String childParent = treeNodeId;
String parent = parentMap.get(childParent);
while (parent != null) {
- if(!paths.contains(parent)) {
+ String parentPath = paths.get(childParent);
+ if(parentPath == null) {
doc.addField(TREENODE_PREFIX + parent, childParent);
- paths.add(parent);
+ paths.put(childParent, parent);
}
childParent = parent;
parent = parentMap.get(childParent);
}
- doc.addField(TREENODE_ROOT, childParent);
- }
-
- return doc;
- }
- /**
- * Update all document depend a deleted node in tree
- */
- public void updateTreeNodeDocument(Map<String, SolrInputDocument> documents, String nodeId) throws SolrServerException {
- SolrQuery query = new SolrQuery(SOLR_QUERY_PARSER + TREENODE_PREFIX + nodeId + ":*");
- QueryResponse response = solrServer.query(query);
- SolrDocumentList updateDocs = response.getResults();
-
- for (Iterator<SolrDocument> iterator = updateDocs.iterator(); iterator.hasNext();) {
- SolrDocument solrDocument = iterator.next();
-
- String documentId = (String) solrDocument.getFieldValue(SOLR_ID);
- SolrInputDocument alreadyDone = documents.get(documentId);
-
- if (alreadyDone == null) {
- SolrInputDocument doc = updateTreeNodeDocument(solrDocument, nodeId);
- documents.put(documentId, doc);
- } else {
- // Copy other field after node
- String parent = (String) alreadyDone.getFieldValue(TREENODE_PREFIX + nodeId);
- if (parent != null) {
- // Recreate doc a sub node is deleted
- SolrInputDocument doc = updateTreeNodeDocument(solrDocument, nodeId);
- documents.put(documentId, doc);
- }
+ String parentPath = paths.get(childParent);
+ if(parentPath == null) {
+ doc.addField(TREENODE_ROOT, childParent);
+ paths.put(childParent, TREENODE_ROOT);
}
}
- }
- /**
- * Re-create a new document without node deleted, from age document
- */
- public SolrInputDocument updateTreeNodeDocument(SolrDocument solrDocument, String nodeId) {
- String documentId = (String) solrDocument.getFieldValue(SOLR_ID);
-
- SolrInputDocument doc = new SolrInputDocument();
- doc.setField(SOLR_ID, documentId);
- doc.setField(TREENODE_CHILD, solrDocument.getFieldValue(TREENODE_CHILD));
-
- // Copy other field after node
- String parent = (String) solrDocument.getFieldValue(TREENODE_PREFIX + nodeId);
- if (parent != null) {
- String childParent = (String) solrDocument.getFieldValue(parent);
- while (childParent != null) {
- doc.setField(parent, childParent);
- parent = TREENODE_PREFIX + childParent;
- childParent = (String) solrDocument.getFieldValue(parent);
- }
- }
-
return doc;
}
@@ -719,12 +688,6 @@
return null;
}
- static public String getSolrFieldName(String fqfieldName, FieldType fieldType) {
- TYPE type = fieldType.getType();
- String result = getSolrFieldName(fqfieldName, type);
- return result;
- }
-
public static String getSolrFieldName(String fqfieldName, TYPE type) {
switch (type) {
case BOOLEAN:
@@ -732,11 +695,11 @@
case DATE:
return fqfieldName + "_dt";
case STRING:
- return fqfieldName + "_t";
+ return fqfieldName + "_s";
case NUMERIC:
return fqfieldName + "_d";
default:
return fqfieldName;
}
}
-}
+}
\ No newline at end of file
1
0