aboutsummaryrefslogtreecommitdiff
path: root/juick-server-jdbc/src/main/java/com/juick/service
diff options
context:
space:
mode:
authorGravatar Vitaly Takmazov2018-03-28 11:27:29 +0300
committerGravatar Vitaly Takmazov2018-03-28 12:10:11 +0300
commit94f85e2ec113efee03def8ae9539cdaee21cccf9 (patch)
tree6946277aef3931e4c5aebd060ff2b5264c8599e3 /juick-server-jdbc/src/main/java/com/juick/service
parentacd6d0180c67a62079652bd879a3e7c661fc2c90 (diff)
drop sphinx search and use datasource autoconfiguration
Diffstat (limited to 'juick-server-jdbc/src/main/java/com/juick/service')
-rw-r--r--juick-server-jdbc/src/main/java/com/juick/service/FTSSearchServiceImpl.java (renamed from juick-server-jdbc/src/main/java/com/juick/service/search/SphinxSearchServiceImpl.java)47
-rw-r--r--juick-server-jdbc/src/main/java/com/juick/service/MessagesServiceImpl.java1
2 files changed, 15 insertions, 33 deletions
diff --git a/juick-server-jdbc/src/main/java/com/juick/service/search/SphinxSearchServiceImpl.java b/juick-server-jdbc/src/main/java/com/juick/service/FTSSearchServiceImpl.java
index e4287502..8d2ffbdb 100644
--- a/juick-server-jdbc/src/main/java/com/juick/service/search/SphinxSearchServiceImpl.java
+++ b/juick-server-jdbc/src/main/java/com/juick/service/FTSSearchServiceImpl.java
@@ -15,15 +15,13 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-package com.juick.service.search;
+package com.juick.service;
import org.apache.commons.lang3.StringUtils;
-import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
-import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
-import org.springframework.util.Assert;
+import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
-import javax.sql.DataSource;
import java.util.Collections;
import java.util.List;
@@ -31,28 +29,13 @@ import java.util.List;
* Created by aalexeev on 11/18/16.
*/
-/* Note
- * Don't use any spring's component annotation (such as @Repository, @Service, @Component, etc).
- * This class directly used by spring's search configuration class
- */
-public class SphinxSearchServiceImpl implements SearchService {
- private static final int DEFAULT_MAX_RESULT = 25;
-
- private final NamedParameterJdbcTemplate namedParameterSearchJdbcTemplate;
+@Repository
+@Transactional(readOnly = true)
+public class FTSSearchServiceImpl extends BaseJdbcService implements SearchService {
+ private static final int DEFAULT_MAX_RESULT = 20;
private int maxResult = DEFAULT_MAX_RESULT;
-
- public SphinxSearchServiceImpl(JdbcTemplate searchJdbcTemplate) {
- Assert.notNull(searchJdbcTemplate, "JdbcTemplate must be initialized");
- this.namedParameterSearchJdbcTemplate = new NamedParameterJdbcTemplate(searchJdbcTemplate);
- }
-
- public SphinxSearchServiceImpl(DataSource searchDataSource) {
- Assert.notNull(searchDataSource, "DataSource must be initialized");
- this.namedParameterSearchJdbcTemplate = new NamedParameterJdbcTemplate(searchDataSource);
- }
-
@Override
public List<Integer> searchInAllMessages(final String searchString, final int messageIdBefore) {
if (StringUtils.isBlank(searchString))
@@ -63,11 +46,11 @@ public class SphinxSearchServiceImpl implements SearchService {
.addValue("before", messageIdBefore)
.addValue("limit", maxResult);
- return namedParameterSearchJdbcTemplate.queryForList(
- "SELECT id AS message_id FROM messages WHERE MATCH(:search) " +
+ return getNamedParameterJdbcTemplate().queryForList(
+ "SELECT message_id FROM messages_txt WHERE MATCH(txt) AGAINST(:search) " +
(messageIdBefore > 0 ?
- " AND id < :before " : StringUtils.EMPTY) +
- " ORDER BY id DESC LIMIT :limit",
+ " AND message_id < :before " : StringUtils.EMPTY) +
+ " ORDER BY message_id DESC LIMIT :limit",
sqlParameterSource,
Integer.class);
}
@@ -83,11 +66,11 @@ public class SphinxSearchServiceImpl implements SearchService {
.addValue("before", messageIdBefore)
.addValue("limit", maxResult);
- return namedParameterSearchJdbcTemplate.queryForList(
- "SELECT id AS message_id FROM messages WHERE user_id = :userId AND MATCH(:search) " +
+ return getNamedParameterJdbcTemplate().queryForList(
+ "SELECT messages.message_id AS message_id FROM messages INNER JOIN messages_txt ON messages_txt.message_id=messages.message_id WHERE messages.user_id = :userId AND MATCH(messages_txt.txt) AGAINST (:search) " +
(messageIdBefore > 0 ?
- " AND id < :before " : StringUtils.EMPTY) +
- " ORDER BY id DESC LIMIT :limit",
+ " AND messages.message_id < :before " : StringUtils.EMPTY) +
+ " ORDER BY messages.message_id DESC LIMIT :limit",
sqlParameterSource,
Integer.class);
}
diff --git a/juick-server-jdbc/src/main/java/com/juick/service/MessagesServiceImpl.java b/juick-server-jdbc/src/main/java/com/juick/service/MessagesServiceImpl.java
index 4398259c..31731466 100644
--- a/juick-server-jdbc/src/main/java/com/juick/service/MessagesServiceImpl.java
+++ b/juick-server-jdbc/src/main/java/com/juick/service/MessagesServiceImpl.java
@@ -22,7 +22,6 @@ import com.juick.Tag;
import com.juick.User;
import com.juick.server.helpers.PrivacyOpts;
import com.juick.server.helpers.ResponseReply;
-import com.juick.service.search.SearchService;
import com.juick.util.MessageUtils;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;