Browse Source

器件联想词改用PrefixQuery

sunyj 9 years ago
parent
commit
31ddc68619

+ 3 - 3
search-console/src/main/java/com/uas/search/console/jms/AQListener.java

@@ -75,8 +75,8 @@ public class AQListener {
 				@Override
 				public void onMessage(Message message) {
 					try {
-						// 等待60秒,为了等待数据表变动的事务提交
-						Thread.sleep(60000);
+						// 等待30秒,为了等待数据表变动的事务提交
+						Thread.sleep(30000);
 					} catch (InterruptedException e1) {
 						e1.printStackTrace();
 					}
@@ -105,9 +105,9 @@ public class AQListener {
 	 */
 	private void process(String message) {
 		ParsedQueueMessage parsedQueueMessage = null;
+		logger.info(message);
 		try {
 			parsedQueueMessage = queueMessageParser.parse(message);
-			logger.info(parsedQueueMessage);
 		} catch (JSONException e) {
 			e.printStackTrace();
 		}

+ 3 - 2
search-console/src/main/java/com/uas/search/console/service/impl/IndexServiceImpl.java

@@ -190,7 +190,8 @@ public class IndexServiceImpl implements IndexService {
 						size++;
 						// 每创建10000条,打印一次进度
 						if (size % 10000 == 0) {
-							System.out.printf("Component indexed...................%.2f%%\n", size * 100.0 / totalSize);
+							logger.info(String.format("Component indexed...................%.2f%%",
+									size * 100.0 / totalSize));
 						}
 						indexWriter.addDocument(document);
 					}
@@ -239,7 +240,7 @@ public class IndexServiceImpl implements IndexService {
 
 			// 器件索引的创建进度(百分比)
 			double indexProgress = size * 100.0 / totalElements;
-			System.out.printf("Component indexed...................%.2f%%\n", indexProgress);
+			logger.info(String.format("Component indexed...................%.2f%%", indexProgress));
 			// 每创建5%,提交一次,避免内存耗尽,发生OutOfMemoryError
 			if (indexProgress - recordProgress > 5) {
 				indexWriter.commit();

+ 4 - 3
search-console/src/main/java/com/uas/search/console/service/impl/SearchServiceImpl.java

@@ -546,9 +546,10 @@ public class SearchServiceImpl implements SearchService {
 
 		List<Map<String, Object>> components = new ArrayList<>();
 		try {
-			BooleanQuery booleanQuery = getBooleanQuery(SearchConstants.COMPONENT_CODE_FIELD, componentCode);
-			logger.info(booleanQuery);
-			TopDocs hits = searcher.search(booleanQuery, SIMILAR_NUM);
+			PrefixQuery prefixQuery = new PrefixQuery(
+					new Term(SearchConstants.COMPONENT_CODE_FIELD, componentCode.toLowerCase()));
+			logger.info(prefixQuery);
+			TopDocs hits = searcher.search(prefixQuery, SIMILAR_NUM);
 			ScoreDoc[] scoreDocs = hits.scoreDocs;
 			for (ScoreDoc scoreDoc : scoreDocs) {
 				Set<String> fieldsToLoad = new HashSet<>();

+ 1 - 1
search-console/src/main/java/com/uas/search/console/util/MergeComponentData.java

@@ -27,7 +27,7 @@ public class MergeComponentData {
 	public static final int SINGLE_FILE_MAX_SIZE = 100000;
 
 	// 器件和属性值两个文本文件的路径
-	private static final String DATA_DIR = "C:\\Users\\sunyj-pc\\Desktop\\data\\prod";
+	private static final String DATA_DIR = "C:\\Users\\sunyj-pc\\Desktop\\data\\test";
 
 	/**
 	 * 将从本地文件读取的一行字符串数据解析为器件对象