我正在使用相当于此查询的数据库从数据库中选择记录:
SELECT * FROM reports WHERE user_id IN (3, 6, 22);
Run Code Online (Sandbox Code Playgroud)
调用fetchAll()的函数有一个参数,它是一个用户ID数组,这个调用工作得很好:
$resultSet = $this->getDbTable()->fetchAll('user_id IN (' . implode(', ', $userIds) . ')');
Run Code Online (Sandbox Code Playgroud)
但是,我想为where子句使用一个数组,因为稍后可能会对查询有其他限制...而且我无法弄明白我的生活.我认为这将是以下的一些变化:
$resultSet = $this->getDbTable()->fetchAll(array('user_id IN ?' => '(' . implode(', ', $userIds) . ')'));
Run Code Online (Sandbox Code Playgroud)
但到目前为止还没有骰子.有人可以在这里提供正确的语法吗?
我正在我的本地机器(伪分布式)上运行Hadoop MapReduce作业,该作业读取和写入HBase.我间歇性地得到一个错误,这会破坏工作,即使计算机一个人没有运行其他重要进程 - 请参阅下面的日志.作业死后,ZooKeeper Dump的输出看起来像这样,运行失败后客户端数量增加:
HBase is rooted at /hbase
Master address: SS-WS-M102:60000
Region server holding ROOT: SS-WS-M102:60020
Region servers:
SS-WS-M102:60020
Quorum Server Statistics:
ss-ws-m102:2181
Zookeeper version: 3.3.3-cdh3u0--1, built on 03/26/2011 00:20 GMT
Clients:
/192.168.40.120:58484[1]\(queued=0,recved=39199,sent=39203)
/192.168.40.120:37129[1]\(queued=0,recved=162,sent=162)
/192.168.40.120:58485[1]\(queued=0,recved=39282,sent=39316)
/192.168.40.120:58488[1]\(queued=0,recved=39224,sent=39226)
/192.168.40.120:58030[0]\(queued=0,recved=1,sent=0)
/192.168.40.120:58486[1]\(queued=0,recved=39248,sent=39267)
Run Code Online (Sandbox Code Playgroud)
我的开发团队目前正在使用CDH3U0发行版,因此HBase 0.90.1 - 这是一个在最近发布的版本中解决的问题吗?或者我应该对当前设置做些什么?我是否应该期望重新启动ZK并定期杀死客户端?我愿意接受任何合理的选择,让我的工作能够始终如一地完成.
2012-06-27 13:01:07,289 INFO org.apache.zookeeper.ClientCnxn: Opening socket connection to server SS-WS-M102/192.168.40.120:2181
2012-06-27 13:01:07,289 INFO org.apache.zookeeper.ClientCnxn: Socket connection established to SS-WS-M102/192.168.40.120:2181, initiating session
2012-06-27 13:01:07,290 WARN org.apache.zookeeper.ClientCnxn: Session 0x0 for server SS-WS-M102/192.168.40.120:2181, unexpected error, closing socket connection and …Run Code Online (Sandbox Code Playgroud) 我有一组Solr文档,包含(在其他字段中)具有百分比数据的多值字段,如果值为null,则为-1,例如
<doc>
...
<arr name="alpha">
<float>0.23</float>
<float>0.23</float>
<float>0.43</float>
</arr>
<arr name="beta">
<float>0.52</float>
<float>-1.0</float>
<float>0.34</float>
</arr>
<arr name="gamma">
<float>-1.0</float>
<float>-1.0</float>
<float>-1.0</float>
</arr>
...
</doc>
Run Code Online (Sandbox Code Playgroud)
我需要查找多值字段包含或不包含某个成员的完整测试用例的文档.如果我可以使下面的任何一个查询起作用,那么找到几十万个特定文档将是一个巨大的帮助:
1)我可以找到一个文件,其中特定多值字段的成员都不符合某个标准吗?(如果我查询"alpha没有成员匹配-1",则会返回上述文档.)
2)我是否可以找到特定多值字段的至少一个成员符合特定标准的文档?(如果我查询"alpha至少有一个成员> 0"或"beta至少有一个成员> 0",则会返回上述文档.)
我假设一个类似的查询alpha:[0 TO 1]不起作用,因为该字段是一个数组而不是一个标量."这是不可能的"的确切答案与"你是如何做到这一点"的答案一样有用 - 提前感谢.
编辑:与许多问题一样,答案是"重新检查您的假设" - 具体而言,生成我们文档的开发人员关闭了百分比字段的索引.
我正在尝试将OpenNLP集成到Hadoop上的map-reduce工作中,从一些基本的句子分割开始.在map函数中,运行以下代码:
public AnalysisFile analyze(String content) {
InputStream modelIn = null;
String[] sentences = null;
// references an absolute path to en-sent.bin
logger.info("sentenceModelPath: " + sentenceModelPath);
try {
modelIn = getClass().getResourceAsStream(sentenceModelPath);
SentenceModel model = new SentenceModel(modelIn);
SentenceDetectorME sentenceBreaker = new SentenceDetectorME(model);
sentences = sentenceBreaker.sentDetect(content);
} catch (FileNotFoundException e) {
logger.error("Unable to locate sentence model.");
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (modelIn != null) {
try {
modelIn.close();
} catch (IOException e) {
}
}
}
logger.info("number …Run Code Online (Sandbox Code Playgroud)