我正在尝试将我的eclipse环境更新为java 8.我安装了jdk和jre版本8.我也这样做了:
https://wiki.eclipse.org/JDT/Eclipse_Java_8_Support_For_Kepler
然后在项目 - >属性 - > java构建路径 - > JRE系统库 - >编辑 - >执行环境 - > JavaSE-1.8(未绑定)这是唯一一个在其名称中包含java 8的选项.但是当我选择它时它会说:工作空间中没有与指定执行环境兼容的JRE:JavaSE-1.8
首先,我需要指出我在我的机器上运行了Wikipedia转储的sql文件,并且能够运行我需要更新许多有关内存和其他设置上可用索引大小的设置.我只想提一下,那些大的SQL查询运行成功,我没有任何关于内存或超时的问题.
现在我有一个表pagelinks(pl_from,pl_title),显示每个维基百科页面中出现的链接,例如数据可以是(1,"title1"),(1,"title2"),(2,"title3") ),(2,"title1").我想创建一个通过pl_from连接titles组的表.为此,这是我的SQL查询(我正在使用工作台):
SET @@group_concat_max_len=150000;
create table concatpagelinks
(SELECT pl_from, GROUP_CONCAT(pl_title , ' ') as links FROM pagelinks GROUP BY pl_from)
Run Code Online (Sandbox Code Playgroud)
运行此查询我收到错误:"在查询期间丢失了与mysql服务器的连接",系统再次询问我密码.所以我搜索并找到了这个.因此我将net_read_timeout更改为1000并将connect_timeout更改为60.它没有解决问题,所以我将查询更改为:
SET @@group_concat_max_len=150000;
create table concatpagelinks
(SELECT pl_from, GROUP_CONCAT(pl_title , ' ') as links FROM pagelinks GROUP BY pl_from limit 0,1000)
Run Code Online (Sandbox Code Playgroud)
仍然是同样的问题,令人惊奇的是每次查询运行600.495秒并且错误发生.
我"Communications link failure"在这行代码中得到错误:
mySqlCon = DriverManager.getConnection("jdbc:mysql://**server ip address**:3306/db-name", "mu-user-name", "my-password");
Run Code Online (Sandbox Code Playgroud)
我查了这篇文章中的所有内容:
当我将查询字符串更改为:
mySqlCon = DriverManager.getConnection("jdbc:mysql://**server ip address**:22/127.0.0.1:3306/db-name", "mu-user-name", "my-password");
Run Code Online (Sandbox Code Playgroud)
我收到了错误 Packet for query is too large (4739923 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.
虽然我已经改变了my.cnf上的数据包大小,然后重新启动了mysql服务.
有什么建议?
注意:
我可以通过ssh与这段代码连接,但这种方式似乎不合理!我可以在main中连接一次然后我应该将连接传递给所有类.
public my-class-constructor() {
try {
go();
} catch (Exception e) {
e.printStackTrace();
}
mySqlCon = null; …Run Code Online (Sandbox Code Playgroud) 我想获取具有特定uri(http://dbpedia.org/page/Weight_gain)的页面的id(或可能是其他信息).我试过这些:(没有一个有效)
select ?id WHERE {<http://dbpedia.org/page/Weight_gain>
<http://dbpedia.org/ontology/wikiPageID> ?id}
select ?uri ?id WHERE {?uri <http://dbpedia.org/ontology/wikiPageID> ?id.
FILTER (?uri = <http://dbpedia.org/page/Weight_gain>) }
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我正在处理的函数是获取一个具有 7 个不同键值的输入对象,并且每个键值都可能未定义或未定义。我想根据输入中存在的那些键值来过滤我的数据库。例如,如果只input.userID存在我想运行这个查询:
db.query("...WHERE userID = ${userID}", {userID: input.userID});
Run Code Online (Sandbox Code Playgroud)
否则如果 input.userID 和 input.startTime 都存在,我想这样做:
db.query("...WHERE userID = ${userID} and startTime= ${startTime}", {userID: input.userID, startTime: input.startTime});
Run Code Online (Sandbox Code Playgroud)
我所做的是创建了一个 params 和 keys 对象,如下所示:
if(input.userID) {
keys.push('userID');
params.push(input.userID);
query = addFilterToTheQuery(query, 'userID', input.userID, filteredItemsCount);
filteredItemsCount = filteredItemsCount +1;
}
Run Code Online (Sandbox Code Playgroud)
addFilterToTheQuery是我自己实现的一个简单功能。我基本上是 7 if case。然后我必须使用这些键和参数值以可能需要另一个巨大的 switch case 代码的方式传递给查询函数。
这是唯一的方法吗?有没有更好的方法来摆脱这段代码中的冗余?
我想删除html内容和标签
<DATE> html content </DATE>
Run Code Online (Sandbox Code Playgroud)
这些是我尝试的代码的不同版本,它们都不起作用:
content = content.replaceAll("<DATE>(?s:)</DATE>", "");
content = content.replaceAll("<DATE>(?:.|\n)</DATE>", "");
content = content.replaceAll("<DATE>" + Pattern.DOTALL + "</DATE>", "");
content = content.replaceAll("<DATE>(.*?)</DATE>", "");
Run Code Online (Sandbox Code Playgroud)
有什么建议?
完整代码:
Path corpusPath = Paths.get(path + file);
String content = new String(Files.readAllBytes(corpusPath), charset);
content = content.replaceAll("<HEADLINE>", "<DOCHDR>");
content = content.replaceAll("</HEADLINE>", "</DOCHDR>");
content = content.replaceAll("<DATE>(.*?)</DATE>", "");
Path destPath = Paths.get(path + "Parsed\\" +file);
Files.write(destPath, content.getBytes(charset));
Run Code Online (Sandbox Code Playgroud) 我的查询是:
SELECT * FROM enwiki.page where title_text = 'drug';
Run Code Online (Sandbox Code Playgroud)
我得到的结果之一是tilte_text ='Drûg'.我怎么能防止这种情况?
我的代码在我的机器上运行正常:
ArrayList<Posting> postings = invertedLists.get(key);
//---- Apply some changes on postings -----
invertedLists.replace(key, postings);
Run Code Online (Sandbox Code Playgroud)
当我的朋友克隆代码时,它给了她这个错误:
The method replace(String, ArrayList<Posting>) is undefined for the type HashMap<String,ArrayList<Posting>>
Run Code Online (Sandbox Code Playgroud)
注意:invertLists是一个 HashMap<String,ArrayList<Posting>>
我们检查了我的项目; 我使用的是JavaSE-1.6,她使用的是JavaSE-1.7.
什么可能导致这个问题?
java ×4
mysql ×3
dbpedia ×1
eclipse ×1
group-concat ×1
hashmap ×1
java-7 ×1
java-8 ×1
javascript ×1
node.js ×1
pg-promise ×1
postgresql ×1
regex ×1
sparql ×1
string ×1
timeout ×1
upgrade ×1