本文整理汇总了PHP中QueryBuilder::multicollocations方法的典型用法代码示例。如果您正苦于以下问题:PHP QueryBuilder::multicollocations方法的具体用法?PHP QueryBuilder::multicollocations怎么用?PHP QueryBuilder::multicollocations使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QueryBuilder
的用法示例。
在下文中一共展示了QueryBuilder::multicollocations方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: multicollocations
public function multicollocations()
{
if ($this->request->is('post')) {
if (!empty($this->request['data']['multiWord1Value']) && !empty($this->request['data']['multiWord2Value']) && !empty($this->request['data']['multiWord3Value'])) {
$this->set('multiWord1Value', $this->request['data']['multiWord1Value']);
$this->set('multiWord2Value', $this->request['data']['multiWord2Value']);
$this->set('multiWord3Value', $this->request['data']['multiWord3Value']);
$this->set('documentFilter', array_key_exists('documentFilter', $this->request['data']) ? $this->request['data']['documentFilter'] : 0);
$languageModel = ClassRegistry::init('Language');
$languageModel->recursive = 1;
$languages = $languageModel->find('all');
$this->set('languages', $languages);
$documentModel = ClassRegistry::init('Document');
$documentModel->recursive = 1;
$documents = $documentModel->find('all');
$this->set('documents', $documents);
if (isset($this->request['data']['documentIds'])) {
$documentIds = $this->request['data']['documentIds'];
} else {
$documentIds = array();
}
$this->set('documentIds', $documentIds);
$multiWord1Params = explode(',', $this->request['data']['multiWord1Value']);
$multiWord2Params = explode(',', $this->request['data']['multiWord2Value']);
$multiWord3Params = explode(',', $this->request['data']['multiWord3Value']);
$sentenceModel = ClassRegistry::init('Sentence');
$rawCollocations = $sentenceModel->query(QueryBuilder::multicollocations($documentIds, $multiWord1Params, $multiWord2Params, $multiWord3Params));
$contexts = array();
foreach ($rawCollocations as $rawCollocation) {
array_push($contexts, $documentModel->query("select * from documents inner join languages on languages.id = documents.language_id inner join sentences on documents.id = sentences.document_id and sentences.id = " . $rawCollocation['sentences']['id'] . " inner join words on sentences.id = words.sentence_id order by words.position;"));
}
if (count($rawCollocations) != count($contexts)) {
die("annotatedWords is of different length than contexts");
}
$this->set('collocations', $rawCollocations);
$this->set('contexts', $contexts);
} else {
$this->Session->setFlash("Empty search query, add search criteria for all searched words.");
return $this->redirect(array('action' => 'generator'));
}
}
}