Commit c964bb77 by shentao

2018/4/26 服务器配置

parent 618b8f3b
...@@ -11,6 +11,7 @@ import org.springframework.boot.ApplicationRunner; ...@@ -11,6 +11,7 @@ import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.zhiwei.messageflow.listener.ApplicationContextProvider; import com.zhiwei.messageflow.listener.ApplicationContextProvider;
import com.zhiwei.messageflow.test.GetMessage;
/** /**
* 消息流模块入口 * 消息流模块入口
...@@ -33,6 +34,10 @@ public class ES4RedisRunner implements ApplicationRunner { ...@@ -33,6 +34,10 @@ public class ES4RedisRunner implements ApplicationRunner {
// getSet gs = ApplicationContextProvider.getBean("getSet", getSet.class); // getSet gs = ApplicationContextProvider.getBean("getSet", getSet.class);
// gs.getDataByeRedis("", "", 0, 0, 0); // gs.getDataByeRedis("", "", 0, 0, 0);
/**
* redis存入缓存
*/
// 手动注入bean ES4RedisStart // 手动注入bean ES4RedisStart
ES4RedisStart start = ApplicationContextProvider.getBean("ES4RedisStart", ES4RedisStart.class); ES4RedisStart start = ApplicationContextProvider.getBean("ES4RedisStart", ES4RedisStart.class);
...@@ -50,13 +55,21 @@ public class ES4RedisRunner implements ApplicationRunner { ...@@ -50,13 +55,21 @@ public class ES4RedisRunner implements ApplicationRunner {
} }
}, 100L, 50 * 1000L); }, 100L, 50 * 1000L);
// /**
// * ES库消息输出Excel并分析关键词重复数据
// */ // /**
// GetMessage gm = ApplicationContextProvider.getBean("getMessage", // * ES库消息输出Excel并分析关键词重复数据
// GetMessage.class); // */
// gm.getSame(); // GetMessage gm = ApplicationContextProvider.getBean("getMessage",
// gm.getmessage(); // GetMessage.class);
// /**
// * 相似关系
// */
// gm.getSame();
// /**
// * 获取消息数量
// */
// gm.getmessage();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
......
...@@ -17,14 +17,16 @@ public class ESClient { ...@@ -17,14 +17,16 @@ public class ESClient {
private static TransportClient getESClient() { private static TransportClient getESClient() {
Settings esSettings = Settings.builder().put("cluster.name", "Media-University") // 设置ES实例的名称 Settings esSettings = Settings.builder().put("cluster.name", "Media-University") // 设置ES实例的名称
.put("client.transport.sniff", true) // 自动嗅探整个集群的状态,把集群中其他ES节点的ip添加到本地的客户端列表中 .put("client.transport.sniff", false) // 自动嗅探整个集群的状态,把集群中其他ES节点的ip添加到本地的客户端列表中
// .put("client.transport.sniff", true)
// .put("client.transport.ping_timeout", "15s") // .put("client.transport.ping_timeout", "15s")
.build(); .build();
TransportClient client = new PreBuiltTransportClient(esSettings); TransportClient client = new PreBuiltTransportClient(esSettings);
// 此步骤添加IP,至少一个,其实一个就够了,因为添加了自动嗅探配置 // 此步骤添加IP,至少一个,其实一个就够了,因为添加了自动嗅探配置
try { try {
client.addTransportAddress( client.addTransportAddress(
new InetSocketTransportAddress(InetAddress.getByName("192.168.1.75"), 9300)); new InetSocketTransportAddress(InetAddress.getByName("1.119.44.201"), 9300));
// new InetSocketTransportAddress(InetAddress.getByName("192.168.1.75"), 9300));
} catch (UnknownHostException e) { } catch (UnknownHostException e) {
e.printStackTrace(); e.printStackTrace();
} }
......
...@@ -24,9 +24,9 @@ public class ESDaoImpl implements ESDao { ...@@ -24,9 +24,9 @@ public class ESDaoImpl implements ESDao {
TransportClient transportClient = ESClient.client; TransportClient transportClient = ESClient.client;
protected static ESIndexesUtil.ESIndexes indexes = ESIndexesUtil.create("192.168.1.75", 9200); // protected static ESIndexesUtil.ESIndexes indexes = ESIndexesUtil.create("192.168.1.75", 9200);
// protected static ESIndexesUtil.ESIndexes indexes = protected static ESIndexesUtil.ESIndexes indexes =
// ESIndexesUtil.create("1.119.44.201", 9200); ESIndexesUtil.create("1.119.44.201", 9200);
@Override @Override
public SearchHits getWeiboDataFromEs(List<String> keywords, int count, long startid, long endid, String platform, public SearchHits getWeiboDataFromEs(List<String> keywords, int count, long startid, long endid, String platform,
...@@ -41,8 +41,47 @@ public class ESDaoImpl implements ESDao { ...@@ -41,8 +41,47 @@ public class ESDaoImpl implements ESDao {
} }
for (int i = 0; i < keywords.size(); i++) { for (int i = 0; i < keywords.size(); i++) {
String word = keywords.get(i).replace("serach---", ""); String word = keywords.get(i).replace("serach---", "");
if (word.indexOf("(") != -1) {
BoolQueryBuilder mixboolQueryBuilder = QueryBuilders.boolQuery();
String anyWord = word.substring(word.indexOf("(") + 1, word.indexOf(")"));
String allWords = word.replaceAll("(" + anyWord + ")", "");
// 或关系
BoolQueryBuilder anyboolQueryBuilder = QueryBuilders.boolQuery();// 查询封装
if (!anyWord.equals("")) {
String[] anywords = anyWord.split(" ");
ESQueryUtil.matchPhraseQueryWords(anyboolQueryBuilder, "should", "text", anywords);
ESQueryUtil.matchPhraseQueryWords(anyboolQueryBuilder, "should", "roottext", anywords);
mixboolQueryBuilder.must(anyboolQueryBuilder);
}
// 且关系
BoolQueryBuilder allboolQueryBuilder = QueryBuilders.boolQuery();// 查询封装
if (!allWords.equals("")) {
String[] allwords = allWords.split(" ");
allboolQueryBuilder.should(
ESQueryUtil.matchPhraseQueryWords(QueryBuilders.boolQuery(), "must", "text", allwords));
allboolQueryBuilder.should(
ESQueryUtil.matchPhraseQueryWords(QueryBuilders.boolQuery(), "must", "roottext", allwords));
mixboolQueryBuilder.must(allboolQueryBuilder);
}
boolQueryBuilder1.should(mixboolQueryBuilder);
} else if (word.indexOf(" ") != -1){
BoolQueryBuilder mixboolQueryBuilder = QueryBuilders.boolQuery();
String words[] = word.split(" ");
for (int a = 0; a < words.length; a++) {
String allWords = words[a];
ESQueryUtil.matchPhraseQueryFields(mixboolQueryBuilder, "must", allWords, "text", "roottext");
}
boolQueryBuilder1.should(mixboolQueryBuilder);
}else {
ESQueryUtil.matchPhraseQueryFields(boolQueryBuilder1, "should", word, "text", "roottext"); ESQueryUtil.matchPhraseQueryFields(boolQueryBuilder1, "should", word, "text", "roottext");
} }
}
//旧搜索语句
// for (int i = 0; i < keywords.size(); i++) {
// String word = keywords.get(i).replace("serach---", "");
// ESQueryUtil.matchPhraseQueryFields(boolQueryBuilder1, "should", word, "text", "roottext");
// }
// 去除插件标注 // 去除插件标注
boolQueryBuilder.mustNot(QueryBuilders.matchQuery("source", "插件标注")); boolQueryBuilder.mustNot(QueryBuilders.matchQuery("source", "插件标注"));
...@@ -63,7 +102,7 @@ public class ESDaoImpl implements ESDao { ...@@ -63,7 +102,7 @@ public class ESDaoImpl implements ESDao {
} else if (endid > 0 && startid > 0) { } else if (endid > 0 && startid > 0) {
searchRequestBuilder.setPostFilter(QueryBuilders.rangeQuery("rstime").from(startid).to(endid)); searchRequestBuilder.setPostFilter(QueryBuilders.rangeQuery("rstime").from(startid).to(endid));
} else { } else {
long startidlong = System.currentTimeMillis() - 5 * 24 * 60 * 60 * 1000L; long startidlong = System.currentTimeMillis() - 1 * 24 * 60 * 60 * 1000L;
String startidTime = TimeUtil.formatDateToMinute(new Date(startidlong)); String startidTime = TimeUtil.formatDateToMinute(new Date(startidlong));
searchRequestBuilder.setPostFilter(QueryBuilders.rangeQuery("time").from(startidTime)); searchRequestBuilder.setPostFilter(QueryBuilders.rangeQuery("time").from(startidTime));
} }
...@@ -87,11 +126,65 @@ public class ESDaoImpl implements ESDao { ...@@ -87,11 +126,65 @@ public class ESDaoImpl implements ESDao {
if (keywords.isEmpty()) { if (keywords.isEmpty()) {
return null; return null;
} }
for (int i = 0; i < keywords.size(); i++) { for (int a = 0; a < keywords.size(); a++) {
String word = keywords.get(i).replace("serach---", ""); String keyword = keywords.get(a).replace("serach---", "");
ESQueryUtil.matchPhraseQueryFields(boolQueryBuilder, "should", word, "question_title",
if (keyword.indexOf("(") != -1) {
BoolQueryBuilder mixboolQueryBuilder = QueryBuilders.boolQuery();
String anyWord = keyword.substring(keyword.indexOf("(") + 1, keyword.indexOf(")"));
String allWords = keyword.replaceAll("(" + anyWord + ")", "");
// 或关系
BoolQueryBuilder anyboolQueryBuilder = QueryBuilders.boolQuery();// 查询封装
if (!anyWord.equals("")) {
String[] anywords = anyWord.split(" ");
for (int i = 0; i < anywords.length; i++) {
String anyword = anywords[i];
anyboolQueryBuilder.should(ESQueryUtil.matchPhraseQueryFields(QueryBuilders.boolQuery(),
"should", anyword, "question_title", "question_content", "answer_content"));
}
mixboolQueryBuilder.must(anyboolQueryBuilder);
}
// 且关系
BoolQueryBuilder allboolQueryBuilder = QueryBuilders.boolQuery();// 查询封装
if (!allWords.equals("")) {
String[] allwords = allWords.split(" ");
for (int i = 0; i < allwords.length; i++) {
String allword = allwords[i];
// 意思为三字段其一满足这个关键词 用且拼接 =》
// ESQueryUtil.matchPhraseQueryFields(boolQueryBuilder, "should", word,
// "question_title", "question_content", "answer_content");
allboolQueryBuilder.must(ESQueryUtil.matchPhraseQueryFields(QueryBuilders.boolQuery(),
"should", allword, "question_title", "question_content", "answer_content"));
}
mixboolQueryBuilder.must(allboolQueryBuilder);
}
boolQueryBuilder.should(mixboolQueryBuilder);
} else if (keyword.indexOf(" ") != -1) {
BoolQueryBuilder mixboolQueryBuilder = QueryBuilders.boolQuery();
String words[] = keyword.split(" ");
for (int i = 0; i < words.length; i++) {
String word = words[i];
// 意思为三字段其一满足这个关键词 用且拼接 =》
// ESQueryUtil.matchPhraseQueryFields(boolQueryBuilder, "should", word,
// "question_title", "question_content", "answer_content");
mixboolQueryBuilder.must(ESQueryUtil.matchPhraseQueryFields(QueryBuilders.boolQuery(), "should",
word, "question_title", "question_content", "answer_content"));
}
boolQueryBuilder.should(mixboolQueryBuilder);
} else {
ESQueryUtil.matchPhraseQueryFields(boolQueryBuilder, "should", keyword, "question_title",
"question_content", "answer_content"); "question_content", "answer_content");
} }
}
//旧查询语句
// for (int i = 0; i < keywords.size(); i++) {
// String word = keywords.get(i).replace("serach---", "");
// ESQueryUtil.matchPhraseQueryFields(boolQueryBuilder, "should", word, "question_title",
// "question_content", "answer_content");
// }
HighlightBuilder highlightBuilder = ESQueryUtil.getHighlightBuilder("question_title", "question_content", HighlightBuilder highlightBuilder = ESQueryUtil.getHighlightBuilder("question_title", "question_content",
"answer_content");// 高亮设置 "answer_content");// 高亮设置
...@@ -128,11 +221,64 @@ public class ESDaoImpl implements ESDao { ...@@ -128,11 +221,64 @@ public class ESDaoImpl implements ESDao {
if (keywords.isEmpty()) { if (keywords.isEmpty()) {
return null; return null;
} }
for (int i = 0; i < keywords.size(); i++) {
String word = keywords.get(i).replace("serach---", ""); for (int a = 0; a < keywords.size(); a++) {
ESQueryUtil.matchPhraseQueryFields(boolQueryBuilder1, "should", word, "title"); String keyword = keywords.get(a).replace("serach---", "");
if (keyword.indexOf("(") != -1) {
BoolQueryBuilder mixboolQueryBuilder = QueryBuilders.boolQuery();
String anyWord = keyword.substring(keyword.indexOf("(") + 1, keyword.indexOf(")"));
String allWords = keyword.replaceAll("(" + anyWord + ")", "");
// 或关系
BoolQueryBuilder anyboolQueryBuilder = QueryBuilders.boolQuery();// 查询封装
if (!anyWord.equals("")) {
String[] anywords = anyWord.split(" ");
for (int i = 0; i < anywords.length; i++) {
String anyword = anywords[i];
anyboolQueryBuilder.should(ESQueryUtil.matchPhraseQueryFields(QueryBuilders.boolQuery(),
"should", anyword, "title"));
}
mixboolQueryBuilder.must(anyboolQueryBuilder);
}
// 且关系
BoolQueryBuilder allboolQueryBuilder = QueryBuilders.boolQuery();// 查询封装
if (!allWords.equals("")) {
String[] allwords = allWords.split(" ");
for (int i = 0; i < allwords.length; i++) {
String allword = allwords[i];
// 意思为三字段其一满足这个关键词 用且拼接 =》
// ESQueryUtil.matchPhraseQueryFields(boolQueryBuilder, "should", word,
// "question_title", "question_content", "answer_content");
allboolQueryBuilder.must(ESQueryUtil.matchPhraseQueryFields(QueryBuilders.boolQuery(), "should",
allword, "title"));
}
mixboolQueryBuilder.must(allboolQueryBuilder);
}
boolQueryBuilder1.should(mixboolQueryBuilder);
} else if (keyword.indexOf(" ") != -1) {
BoolQueryBuilder mixboolQueryBuilder = QueryBuilders.boolQuery();
String words[] = keyword.split(" ");
for (int i = 0; i < words.length; i++) {
String word = words[i];
// 意思为三字段其一满足这个关键词 用且拼接 =》
// ESQueryUtil.matchPhraseQueryFields(boolQueryBuilder, "should", word,
// "question_title", "question_content", "answer_content");
mixboolQueryBuilder.must(
ESQueryUtil.matchPhraseQueryFields(QueryBuilders.boolQuery(), "should", word, "title"));
}
boolQueryBuilder1.should(mixboolQueryBuilder);
} else {
ESQueryUtil.matchPhraseQueryFields(boolQueryBuilder1, "should", keyword, "title");
}
} }
//旧查询语句
// for (int i = 0; i < keywords.size(); i++) {
// String word = keywords.get(i).replace("serach---", "");
// ESQueryUtil.matchPhraseQueryFields(boolQueryBuilder1, "should", word, "title");
// }
boolQueryBuilder.must(boolQueryBuilder1); boolQueryBuilder.must(boolQueryBuilder1);
HighlightBuilder highlightBuilder = ESQueryUtil.getHighlightBuilder("title");// 高亮设置 HighlightBuilder highlightBuilder = ESQueryUtil.getHighlightBuilder("title");// 高亮设置
...@@ -168,11 +314,51 @@ public class ESDaoImpl implements ESDao { ...@@ -168,11 +314,51 @@ public class ESDaoImpl implements ESDao {
if (keywords.isEmpty()) { if (keywords.isEmpty()) {
return null; return null;
} }
for (int i = 0; i < keywords.size(); i++) {
String word = keywords.get(i).replace("serach---", ""); for (int a = 0; a < keywords.size(); a++) {
ESQueryUtil.matchPhraseQueryFields(boolQueryBuilder1, "should", word, "title", "content"); String keyword = keywords.get(a).replace("serach---", "");
if (keyword.indexOf("(") != -1) {
BoolQueryBuilder mixboolQueryBuilder = QueryBuilders.boolQuery();
String anyWord = keyword.substring(keyword.indexOf("(") + 1, keyword.indexOf(")"));
String allWords = keyword.replaceAll("(" + anyWord + ")", "");
// 或关系
BoolQueryBuilder anyboolQueryBuilder = QueryBuilders.boolQuery();// 查询封装
if (!anyWord.equals("")) {
String[] anywords = anyWord.split(" ");
ESQueryUtil.matchPhraseQueryWords(anyboolQueryBuilder, "should", "title", anywords);
ESQueryUtil.matchPhraseQueryWords(anyboolQueryBuilder, "should", "content", anywords);
mixboolQueryBuilder.must(anyboolQueryBuilder);
}
// 且关系
BoolQueryBuilder allboolQueryBuilder = QueryBuilders.boolQuery();// 查询封装
if (!allWords.equals("")) {
String[] allwords = allWords.split(" ");
allboolQueryBuilder.should(
ESQueryUtil.matchPhraseQueryWords(QueryBuilders.boolQuery(), "must", "title", allwords));
allboolQueryBuilder.should(
ESQueryUtil.matchPhraseQueryWords(QueryBuilders.boolQuery(), "must", "content", allwords));
mixboolQueryBuilder.must(allboolQueryBuilder);
}
boolQueryBuilder1.should(mixboolQueryBuilder);
} else if (keyword.indexOf(" ") != -1) {
BoolQueryBuilder mixboolQueryBuilder = QueryBuilders.boolQuery();
String words[] = keyword.split(" ");
for (int i = 0; i < words.length; i++) {
String word = words[i];
ESQueryUtil.matchPhraseQueryFields(boolQueryBuilder, "must", word, "title", "content");
}
boolQueryBuilder1.should(mixboolQueryBuilder);
} else {
ESQueryUtil.matchPhraseQueryFields(boolQueryBuilder1, "should", keyword, "title", "content");
}
} }
//旧查询语句
// for (int i = 0; i < keywords.size(); i++) {
// String word = keywords.get(i).replace("serach---", "");
// ESQueryUtil.matchPhraseQueryFields(boolQueryBuilder1, "should", word, "title", "content");
// }
HighlightBuilder highlightBuilder = ESQueryUtil.getHighlightBuilder("title", "content");// 高亮设置 HighlightBuilder highlightBuilder = ESQueryUtil.getHighlightBuilder("title", "content");// 高亮设置
// 根据platform选消息:(现有platform:网络媒体、微信公众平台、报刊、今日头条、客户端)(可能有论坛、贴吧) // 根据platform选消息:(现有platform:网络媒体、微信公众平台、报刊、今日头条、客户端)(可能有论坛、贴吧)
...@@ -229,7 +415,7 @@ public class ESDaoImpl implements ESDao { ...@@ -229,7 +415,7 @@ public class ESDaoImpl implements ESDao {
} else if (endid > 0 && startid > 0) { } else if (endid > 0 && startid > 0) {
searchRequestBuilder.setPostFilter(QueryBuilders.rangeQuery("rsid").from(startid).to(endid)); searchRequestBuilder.setPostFilter(QueryBuilders.rangeQuery("rsid").from(startid).to(endid));
} else if (!platform.equals("报刊") && !platform.equals("论坛") && !platform.equals("贴吧")) { } else if (!platform.equals("报刊") && !platform.equals("论坛") && !platform.equals("贴吧")) {
long startidlong = System.currentTimeMillis() - 5 * 24 * 60 * 60 * 1000L; long startidlong = System.currentTimeMillis() - 1 * 24 * 60 * 60 * 1000L;
String startidTime = TimeUtil.formatEsDate(new Date(startidlong)); String startidTime = TimeUtil.formatEsDate(new Date(startidlong));
searchRequestBuilder.setPostFilter(QueryBuilders.rangeQuery("time").from(startidTime)); searchRequestBuilder.setPostFilter(QueryBuilders.rangeQuery("time").from(startidTime));
} }
...@@ -416,6 +602,10 @@ public class ESDaoImpl implements ESDao { ...@@ -416,6 +602,10 @@ public class ESDaoImpl implements ESDao {
booljrQueryBuilder2.must(QueryBuilders.matchPhraseQuery("type", "今日头条")) booljrQueryBuilder2.must(QueryBuilders.matchPhraseQuery("type", "今日头条"))
.must(QueryBuilders.existsQuery("crawlerV")); .must(QueryBuilders.existsQuery("crawlerV"));
boolQueryBuilder.must(QueryBuilders.boolQuery().should(booljrQueryBuilder1).should(booljrQueryBuilder2)); boolQueryBuilder.must(QueryBuilders.boolQuery().should(booljrQueryBuilder1).should(booljrQueryBuilder2));
//插件流
// boolQueryBuilder.must(QueryBuilders.matchPhraseQuery("type", "今日头条"))
// .mustNot(QueryBuilders.existsQuery("spyderInfoId")).mustNot(QueryBuilders.existsQuery("crawlerV"));
} else if (platform.equals("客户端")) { } else if (platform.equals("客户端")) {
boolQueryBuilder.must(QueryBuilders.boolQuery().should(QueryBuilders.wildcardQuery("type", "*客户端")) boolQueryBuilder.must(QueryBuilders.boolQuery().should(QueryBuilders.wildcardQuery("type", "*客户端"))
.should(QueryBuilders.matchPhraseQuery("type", "脉脉"))); .should(QueryBuilders.matchPhraseQuery("type", "脉脉")));
...@@ -435,6 +625,7 @@ public class ESDaoImpl implements ESDao { ...@@ -435,6 +625,7 @@ public class ESDaoImpl implements ESDao {
SearchResponse response = searchRequestBuilder.execute().actionGet(); SearchResponse response = searchRequestBuilder.execute().actionGet();
SearchHits searchHits = response.getHits(); SearchHits searchHits = response.getHits();
System.out.println(searchHits.totalHits);
return searchHits; return searchHits;
} }
......
...@@ -33,18 +33,25 @@ public abstract class AbstractMongoConfig { ...@@ -33,18 +33,25 @@ public abstract class AbstractMongoConfig {
*/ */
public MongoDbFactory mongoDbFactory() throws Exception { public MongoDbFactory mongoDbFactory() throws Exception {
ServerAddress serverAddress = new ServerAddress(host, port); ServerAddress serverAddress = new ServerAddress(host, port);
MongoCredential mongoCredential = MongoCredential.createCredential(username, authenticationDatabase,
password.toCharArray());
MongoClientOptions.Builder builder = new MongoClientOptions.Builder(); MongoClientOptions.Builder builder = new MongoClientOptions.Builder();
builder.connectionsPerHost(mongoConfig.getConnectionsPerHost()); builder.connectionsPerHost(mongoConfig.getConnectionsPerHost());
builder.connectTimeout(mongoConfig.getConnectTimeout()); builder.connectTimeout(mongoConfig.getConnectTimeout());
builder.threadsAllowedToBlockForConnectionMultiplier( builder.threadsAllowedToBlockForConnectionMultiplier(
mongoConfig.getThreadsAllowedToBlockForConnectionMultiplier()); mongoConfig.getThreadsAllowedToBlockForConnectionMultiplier());
builder.maxWaitTime(mongoConfig.getMaxWaitTime()); builder.maxWaitTime(mongoConfig.getMaxWaitTime());
System.err.println(mongoConfig.toString());
MongoClientOptions mongoClientOptions = builder.build(); MongoClientOptions mongoClientOptions = builder.build();
return new SimpleMongoDbFactory(new MongoClient(serverAddress, mongoCredential, mongoClientOptions), database); if (username != null) {
// System.out.println("username:"+username+",database:"+database+",password:"+password);
MongoCredential mongoCredential = MongoCredential.createCredential(username, authenticationDatabase,
password.toCharArray());
return new SimpleMongoDbFactory(new MongoClient(serverAddress, mongoCredential, mongoClientOptions),
database);
}
return new SimpleMongoDbFactory(new MongoClient(serverAddress, mongoClientOptions), database);
} }
/** /**
* 获取mongoTemplate * 获取mongoTemplate
* *
......
...@@ -10,9 +10,17 @@ import org.springframework.data.mongodb.core.MongoTemplate; ...@@ -10,9 +10,17 @@ import org.springframework.data.mongodb.core.MongoTemplate;
@ConfigurationProperties(prefix = "spring.data.mongodb.primary") @ConfigurationProperties(prefix = "spring.data.mongodb.primary")
public class PrimaryMongoConfig extends AbstractMongoConfig { public class PrimaryMongoConfig extends AbstractMongoConfig {
private static MongoTemplate mongoTemplate = null;
@Primary @Primary
@Override @Override
public @Bean(name = "primaryMongoTemplate") MongoTemplate getMongoTemplate() throws Exception { public @Bean(name = "primaryMongoTemplate") MongoTemplate getMongoTemplate() throws Exception {
// if (mongoTemplate == null) {
// mongoTemplate = new MongoTemplate(mongoDbFactory());
// System.err.println("@Primary配置");
// }
// return mongoTemplate;
System.err.println("@Primary配置");
return new MongoTemplate(mongoDbFactory()); return new MongoTemplate(mongoDbFactory());
} }
......
...@@ -9,8 +9,16 @@ import org.springframework.data.mongodb.core.MongoTemplate; ...@@ -9,8 +9,16 @@ import org.springframework.data.mongodb.core.MongoTemplate;
@ConfigurationProperties(prefix = "spring.data.mongodb.secondary") @ConfigurationProperties(prefix = "spring.data.mongodb.secondary")
public class SecondaryMongoConfig extends AbstractMongoConfig { public class SecondaryMongoConfig extends AbstractMongoConfig {
private static MongoTemplate mongoTemplate = null;
@Override @Override
public @Bean(name = "secondaryMongoTemplate") MongoTemplate getMongoTemplate() throws Exception { public @Bean(name = "secondaryMongoTemplate") MongoTemplate getMongoTemplate() throws Exception {
// if (mongoTemplate == null) {
// mongoTemplate = new MongoTemplate(mongoDbFactory());
// System.err.println("Second配置2");
// }
// return mongoTemplate;
System.err.println("Second配置2");
return new MongoTemplate(mongoDbFactory()); return new MongoTemplate(mongoDbFactory());
} }
......
...@@ -9,8 +9,16 @@ import org.springframework.data.mongodb.core.MongoTemplate; ...@@ -9,8 +9,16 @@ import org.springframework.data.mongodb.core.MongoTemplate;
@ConfigurationProperties(prefix = "spring.data.mongodb.thirdary") @ConfigurationProperties(prefix = "spring.data.mongodb.thirdary")
public class ThirdaryMongoConfig extends AbstractMongoConfig { public class ThirdaryMongoConfig extends AbstractMongoConfig {
private static MongoTemplate mongoTemplate = null;
@Override @Override
public @Bean(name = "thirdaryMongoTemplate") MongoTemplate getMongoTemplate() throws Exception { public @Bean(name = "thirdaryMongoTemplate") MongoTemplate getMongoTemplate() throws Exception {
// if (mongoTemplate == null) {
// mongoTemplate = new MongoTemplate(mongoDbFactory());
// System.err.println("third配置3");
// }
// return mongoTemplate;
System.err.println("third配置3");
return new MongoTemplate(mongoDbFactory()); return new MongoTemplate(mongoDbFactory());
} }
......
...@@ -32,6 +32,8 @@ import com.zhiwei.messageflow.bean.VideoMessage; ...@@ -32,6 +32,8 @@ import com.zhiwei.messageflow.bean.VideoMessage;
import com.zhiwei.messageflow.bean.WeiboMessage; import com.zhiwei.messageflow.bean.WeiboMessage;
import com.zhiwei.messageflow.bean.ZhihuMessage; import com.zhiwei.messageflow.bean.ZhihuMessage;
import com.zhiwei.messageflow.es.dao.impl.ESDaoImpl; import com.zhiwei.messageflow.es.dao.impl.ESDaoImpl;
import com.zhiwei.messageflow.mongo.bean.KeywordNew;
import com.zhiwei.messageflow.mongo.dao.KeywordNewDao;
import com.zhiwei.messageflow.mongo.dao.PlatformDao; import com.zhiwei.messageflow.mongo.dao.PlatformDao;
import com.zhiwei.messageflow.mongo.dao.ProjectDao; import com.zhiwei.messageflow.mongo.dao.ProjectDao;
...@@ -46,6 +48,8 @@ public class GetMessage { ...@@ -46,6 +48,8 @@ public class GetMessage {
PlatformDao platformDao; PlatformDao platformDao;
@Autowired @Autowired
ProjectDao projectDao; ProjectDao projectDao;
@Autowired
KeywordNewDao keywordNewDao;
public void getmessage() throws FileNotFoundException, ParseException { public void getmessage() throws FileNotFoundException, ParseException {
/* /*
...@@ -60,28 +64,37 @@ public class GetMessage { ...@@ -60,28 +64,37 @@ public class GetMessage {
List<MediaMessage> mmessages = new ArrayList<>(); List<MediaMessage> mmessages = new ArrayList<>();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date = df.parse("2018-03-01 00:00:00"); Date date = df.parse("2018-04-16 00:00:00");
int n = 4 * 30; int n = 4*7;
HSSFWorkbook workbook = new HSSFWorkbook(); HSSFWorkbook workbook = new HSSFWorkbook();
OutputStream out = new FileOutputStream("E://微信+红包.xls"); OutputStream out = new FileOutputStream("E://京东今日头条插件.xls");
List<String> platformNames = platformDao.getAllPlatformName(); // List<String> platformNames = platfor mDao.getAllPlatformName();
List<String> platformNames = new ArrayList<>();
// platformNames.add("客户端");
platformNames.add("今日头条");
List<KeywordNew> jdkns= keywordNewDao.getKeywordNewByProject("京东");
List<String> keywords = new ArrayList<>(); List<String> keywords = new ArrayList<>();
keywords.add("微信+红包"); for(KeywordNew kn:jdkns) {
keywords.addAll(kn.getKeyWords());
}
// keywords.add("微信==红包");
// keywords.add("微信+支付"); // keywords.add("微信+支付");
// keywords.add("京东,假货"); // keywords.add("京东,假货");
// keywords.add("京东,刷单"); // keywords.add("京东,刷单");
// keywords.add("京东,二手"); // keywords.add("京东,二手");
// keywords.add("京东,合作"); // keywords.add("京东,合作");
// keywords.add("京东,战略"); // keywords.add("京东,战略");
// keywords.add("京东,"); // keywords.add("京东");
for (String platformName : platformNames) { for (String platformName : platformNames) {
System.out.println(platformName); System.out.println(platformName);
if (platformName.equals("微博")) { if (platformName.equals("微博")) {
for (long i = 0; i < n; i++) { for (long i = 0; i < n; i++) {
SearchHits searchHits = esDao.getWeiboDataycy(date.getTime() + i * 6 * 3000 * 1000L, keywords, SearchHits searchHits = esDao.getWeiboDataycy(date.getTime() + i * 6 * 3600 * 1000L, keywords,
10000, platformName, "京东"); 10000, platformName, "京东");
SearchHit[] sh = searchHits.getHits(); SearchHit[] sh = searchHits.getHits();
for (SearchHit s : sh) { for (SearchHit s : sh) {
...@@ -104,7 +117,7 @@ public class GetMessage { ...@@ -104,7 +117,7 @@ public class GetMessage {
workbook = exportExcelWeibo(out, workbook, null, wmessages, platformName); workbook = exportExcelWeibo(out, workbook, null, wmessages, platformName);
} else if (platformName.equals("知乎")) { } else if (platformName.equals("知乎")) {
for (long i = 0; i < n; i++) { for (long i = 0; i < n; i++) {
SearchHits searchHits = esDao.getZhihuDataycy(date.getTime() + i * 6 * 3000 * 1000L, keywords, SearchHits searchHits = esDao.getZhihuDataycy(date.getTime() + i * 6 * 3600 * 1000L, keywords,
10000, platformName, "京东"); 10000, platformName, "京东");
SearchHit[] sh = searchHits.getHits(); SearchHit[] sh = searchHits.getHits();
...@@ -126,7 +139,7 @@ public class GetMessage { ...@@ -126,7 +139,7 @@ public class GetMessage {
workbook = exportExcelZhihu(out, workbook, null, zmessages, platformName); workbook = exportExcelZhihu(out, workbook, null, zmessages, platformName);
} else if (platformName.equals("视频")) { } else if (platformName.equals("视频")) {
for (long i = 0; i < n; i++) { for (long i = 0; i < n; i++) {
SearchHits searchHits = esDao.getVideoDataycy(date.getTime() + i * 6 * 3000 * 1000L, keywords, SearchHits searchHits = esDao.getVideoDataycy(date.getTime() + i * 6 * 3600 * 1000L, keywords,
10000, platformName, "京东"); 10000, platformName, "京东");
SearchHit[] sh = searchHits.getHits(); SearchHit[] sh = searchHits.getHits();
...@@ -148,7 +161,7 @@ public class GetMessage { ...@@ -148,7 +161,7 @@ public class GetMessage {
workbook = exportExcelVideo(out, workbook, null, vmessages, platformName); workbook = exportExcelVideo(out, workbook, null, vmessages, platformName);
} else { } else {
for (long i = 0; i < n; i++) { for (long i = 0; i < n; i++) {
SearchHits searchHits = esDao.getMediaDataycy(date.getTime() + i * 6 * 3000 * 1000L, keywords, SearchHits searchHits = esDao.getMediaDataycy(date.getTime() + i * 6 * 3600 * 1000L, keywords,
10000, platformName, "京东"); 10000, platformName, "京东");
SearchHit[] sh = searchHits.getHits(); SearchHit[] sh = searchHits.getHits();
...@@ -172,6 +185,7 @@ public class GetMessage { ...@@ -172,6 +185,7 @@ public class GetMessage {
} // 获取完成 } // 获取完成
try { try {
workbook.write(out); workbook.write(out);
System.out.println("文档写入完毕");
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
......
##服务端uri ##服务端uri
#spring.data.mongodb.uri=115.236.59.91:27017 #spring.data.mongodb.uri=115.236.59.91:27017
#服务端数据库
#内置tomcat端口号
server.port=8091
#服务端数据库
spring.data.mongodb.primary.database=qbjcPhoenix spring.data.mongodb.primary.database=qbjcPhoenix
#服务ip #服务ip
spring.data.mongodb.primary.host=115.236.59.91 spring.data.mongodb.primary.host=192.168.0.101
#服务port #服务port
spring.data.mongodb.primary.port=27017 spring.data.mongodb.primary.port=27017
spring.data.mongodb.primary.username=stno spring.data.mongodb.primary.username=stno
...@@ -13,11 +17,11 @@ spring.data.mongodb.primary.password=stno1q2w3e4r ...@@ -13,11 +17,11 @@ spring.data.mongodb.primary.password=stno1q2w3e4r
spring.data.mongodb.primary.authenticationDatabase=admin spring.data.mongodb.primary.authenticationDatabase=admin
#服务端数据库 #服务端数据库
spring.data.mongodb.secondary.database=eventMuseum spring.data.mongodb.secondary.database=eventMuseum
#服务ip #服务ip
spring.data.mongodb.secondary.host=115.236.59.91 spring.data.mongodb.secondary.host=192.168.0.101
#服务port #服务port
spring.data.mongodb.secondary.port=27017 spring.data.mongodb.secondary.port=27017
spring.data.mongodb.secondary.username=stno spring.data.mongodb.secondary.username=stno
...@@ -26,11 +30,11 @@ spring.data.mongodb.secondary.password=stno1q2w3e4r ...@@ -26,11 +30,11 @@ spring.data.mongodb.secondary.password=stno1q2w3e4r
spring.data.mongodb.secondary.authenticationDatabase=admin spring.data.mongodb.secondary.authenticationDatabase=admin
#服务端数据库 #服务端数据库
spring.data.mongodb.thirdary.database=WechatPublic spring.data.mongodb.thirdary.database=WechatPublic
#服务ip #服务ip
spring.data.mongodb.thirdary.host=115.236.59.91 spring.data.mongodb.thirdary.host=192.168.0.101
#服务port #服务port
spring.data.mongodb.thirdary.port=27017 spring.data.mongodb.thirdary.port=27017
spring.data.mongodb.thirdary.username=stno spring.data.mongodb.thirdary.username=stno
...@@ -60,21 +64,21 @@ spring.data.mongodb.thirdary.authenticationDatabase=admin ...@@ -60,21 +64,21 @@ spring.data.mongodb.thirdary.authenticationDatabase=admin
#spring.data.mongodb.option.heartbeat-frequency=10000 #spring.data.mongodb.option.heartbeat-frequency=10000
#spring.data.mongodb.option.local-threshold=15 #spring.data.mongodb.option.local-threshold=15
##本地ip ##本地ip
#spring.data.mongodb.host=192.168.0.241 #spring.data.mongodb.host=192.168.0.241
##本地port ##本地port
#spring.data.mongodb.port=27017 #spring.data.mongodb.port=27017
##本地数据库 ##本地数据库
#spring.data.mongodb.database=qbjcPhoenix #spring.data.mongodb.database=qbjcPhoenix
#其他数据库 #其他数据库
#spring.data.mongodb.database=eventMuseum #spring.data.mongodb.database=eventMuseum
#spring.data.mongodb.database=WechatPublic #spring.data.mongodb.database=WechatPublic
#taguri #tag用uri
#spring.data.mongodb.uri=1.119.44.206:30000 #spring.data.mongodb.uri=1.119.44.206:30000
#spring.data.mongodb.uri=192.168.0.245:27017 #spring.data.mongodb.uri=192.168.0.245:27017
#tag数据库 #tag数据库
#spring.data.mongodb.database=Testqbjc #spring.data.mongodb.database=Testqbjc
#spring.data.mongodb.database=weibotag #spring.data.mongodb.database=weibotag
......
##服务端uri
#spring.data.mongodb.uri=115.236.59.91:27017
#服务端数据库
spring.data.mongodb.primary.database=qbjcPhoenix
#服务ip
spring.data.mongodb.primary.host=127.0.0.1
#服务port
spring.data.mongodb.primary.port=27017
#spring.data.mongodb.primary.username=stno
#spring.data.mongodb.primary.password=stno1q2w3e4r
#spring.data.mongodb.primary.authenticationDatabase=admin
#服务端数据库
spring.data.mongodb.secondary.database=eventMuseum
#服务ip
spring.data.mongodb.secondary.host=115.236.59.91
#服务port
spring.data.mongodb.secondary.port=27017
spring.data.mongodb.secondary.username=stno
spring.data.mongodb.secondary.password=stno1q2w3e4r
spring.data.mongodb.secondary.authenticationDatabase=admin
#服务端数据库
spring.data.mongodb.thirdary.database=WechatPublic
#服务ip
spring.data.mongodb.thirdary.host=115.236.59.91
#服务port
spring.data.mongodb.thirdary.port=27017
spring.data.mongodb.thirdary.username=stno
spring.data.mongodb.thirdary.password=stno1q2w3e4r
spring.data.mongodb.thirdary.authenticationDatabase=admin
#spring.data.mongodb.option.min-connection-per-host=0
#spring.data.mongodb.option.max-connection-per-host=100
#spring.data.mongodb.option.threads-allowed-to-block-for-connection-multiplier=5
#spring.data.mongodb.option.server-selection-timeout=30000
#spring.data.mongodb.option.max-wait-time=120000
#spring.data.mongodb.option.max-connection-idle-time=0
#spring.data.mongodb.option.max-connection-life-time=0
#spring.data.mongodb.option.connect-timeout=10000
#spring.data.mongodb.option.socket-timeout=0
#
#spring.data.mongodb.option.socket-keep-alive=false
#spring.data.mongodb.option.ssl-enabled=false
#spring.data.mongodb.option.ssl-invalid-host-name-allowed=false
#spring.data.mongodb.option.always-use-m-beans=false
#
#spring.data.mongodb.option.heartbeat-socket-timeout=20000
#spring.data.mongodb.option.heartbeat-connect-timeout=20000
#spring.data.mongodb.option.min-heartbeat-frequency=500
#spring.data.mongodb.option.heartbeat-frequency=10000
#spring.data.mongodb.option.local-threshold=15
##本地ip
#spring.data.mongodb.host=192.168.0.241
##本地port
#spring.data.mongodb.port=27017
##本地数据库
#spring.data.mongodb.database=qbjcPhoenix
#其他数据库
#spring.data.mongodb.database=eventMuseum
#spring.data.mongodb.database=WechatPublic
#tag用uri
#spring.data.mongodb.uri=1.119.44.206:30000
#spring.data.mongodb.uri=192.168.0.245:27017
#tag数据库
#spring.data.mongodb.database=Testqbjc
#spring.data.mongodb.database=weibotag
#mongo.connectionsPerHost=200
#mongo.threadsAllowedToBlockForConnectionMultiplier=10
#
#mongo.connectTimeout=30000
#
#mongo.maxWaitTime=50000
#mongo.autoConnectRetry=true
#mongo.socketKeepAlive=true
#
#mongo.socketTimeout=120000
#mongo.slaveOk=true
\ No newline at end of file
##服务端uri
#spring.data.mongodb.uri=115.236.59.91:27017
#服务端数据库
spring.data.mongodb.primary.database=qbjcPhoenix
#服务ip
spring.data.mongodb.primary.host=127.0.0.1
#服务port
spring.data.mongodb.primary.port=27017
#spring.data.mongodb.primary.username=stno
#spring.data.mongodb.primary.password=stno1q2w3e4r
#spring.data.mongodb.primary.authenticationDatabase=admin
#服务端数据库
spring.data.mongodb.secondary.database=eventMuseum
#服务ip
spring.data.mongodb.secondary.host=115.236.59.91
#服务port
spring.data.mongodb.secondary.port=27017
spring.data.mongodb.secondary.username=stno
spring.data.mongodb.secondary.password=stno1q2w3e4r
spring.data.mongodb.secondary.authenticationDatabase=admin
#服务端数据库
spring.data.mongodb.thirdary.database=WechatPublic
#服务ip
spring.data.mongodb.thirdary.host=115.236.59.91
#服务port
spring.data.mongodb.thirdary.port=27017
spring.data.mongodb.thirdary.username=stno
spring.data.mongodb.thirdary.password=stno1q2w3e4r
spring.data.mongodb.thirdary.authenticationDatabase=admin
#spring.data.mongodb.option.min-connection-per-host=0
#spring.data.mongodb.option.max-connection-per-host=100
#spring.data.mongodb.option.threads-allowed-to-block-for-connection-multiplier=5
#spring.data.mongodb.option.server-selection-timeout=30000
#spring.data.mongodb.option.max-wait-time=120000
#spring.data.mongodb.option.max-connection-idle-time=0
#spring.data.mongodb.option.max-connection-life-time=0
#spring.data.mongodb.option.connect-timeout=10000
#spring.data.mongodb.option.socket-timeout=0
#
#spring.data.mongodb.option.socket-keep-alive=false
#spring.data.mongodb.option.ssl-enabled=false
#spring.data.mongodb.option.ssl-invalid-host-name-allowed=false
#spring.data.mongodb.option.always-use-m-beans=false
#
#spring.data.mongodb.option.heartbeat-socket-timeout=20000
#spring.data.mongodb.option.heartbeat-connect-timeout=20000
#spring.data.mongodb.option.min-heartbeat-frequency=500
#spring.data.mongodb.option.heartbeat-frequency=10000
#spring.data.mongodb.option.local-threshold=15
##本地ip
#spring.data.mongodb.host=192.168.0.241
##本地port
#spring.data.mongodb.port=27017
##本地数据库
#spring.data.mongodb.database=qbjcPhoenix
#其他数据库
#spring.data.mongodb.database=eventMuseum
#spring.data.mongodb.database=WechatPublic
#tag用uri
#spring.data.mongodb.uri=1.119.44.206:30000
#spring.data.mongodb.uri=192.168.0.245:27017
#tag数据库
#spring.data.mongodb.database=Testqbjc
#spring.data.mongodb.database=weibotag
#mongo.connectionsPerHost=200
#mongo.threadsAllowedToBlockForConnectionMultiplier=10
#
#mongo.connectTimeout=30000
#
#mongo.maxWaitTime=50000
#mongo.autoConnectRetry=true
#mongo.socketKeepAlive=true
#
#mongo.socketTimeout=120000
#mongo.slaveOk=true
\ No newline at end of file
mongo.LocalIP = 192.168.0.241 #mongo.LocalIP = 192.168.0.241
#mongo.LocalDBName = qbjcPhoenix #mongo.LocalDBName = qbjcPhoenix
#mongo.Localport = 27017 #mongo.Localport = 27017
#mongo.LocalIP = 115.236.59.91 #mongo.LocalIP = 115.236.59.91
#mongo.LocalIP = 192.168.0.101 mongo.LocalIP = 192.168.0.101
mongo.LocalDBName = qbjcPhoenix mongo.LocalDBName = qbjcPhoenix
mongo.Localport = 27017 mongo.Localport = 27017
#mongo.ServerIP = 192.168.0.101 mongo.ServerIP = 192.168.0.101
mongo.ServerIP = 115.236.59.91 #mongo.ServerIP = 115.236.59.91
mongo.ServerDBName = qbjcPhoenix mongo.ServerDBName = qbjcPhoenix
mongo.Serverport = 27017 mongo.Serverport = 27017
......
...@@ -3,17 +3,17 @@ redis.maxIdle=200 ...@@ -3,17 +3,17 @@ redis.maxIdle=200
redis.maxWaitMillis=1000 redis.maxWaitMillis=1000
redis.testOnBorrow=true redis.testOnBorrow=true
redis.testOnReturn=true redis.testOnReturn=true
#redis.ip = 192.168.0.202 redis.ip = 192.168.0.202
#redis.ip = 202.107.192.94 #redis.ip = 202.107.192.94
#redis.ip=127.0.0.1 #redis.ip=127.0.0.1
#redis.port=6379 redis.port=6379
redis.ip=192.168.1.74 #redis.ip=192.168.1.74
redis.port=6388 #redis.port=6388
redis.password=fjouero&^%^%^$*()*)))*^$$KDFJDKJF9ruorudlfdljfldjf #redis.password=fjouero&^%^%^$*()*)))*^$$KDFJDKJF9ruorudlfdljfldjf
redis.keyMaxSize=5000 redis.keyMaxSize=5000
redis.selectDB=2 redis.selectDB=13
#redis.selectDB=2 #redis.selectDB=2
redis.user_keyMaxSize=1000 redis.user_keyMaxSize=1000
redis.cacheSize=1000 redis.cacheSize=1000
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment