Commit 76f436ed authored by Mersi Stafa's avatar Mersi Stafa
Browse files

final

parents
services/node_modules/
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/pae-master.iml" filepath="$PROJECT_DIR$/.idea/pae-master.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/temp" />
<excludeFolder url="file://$MODULE_DIR$/tmp" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
This diff is collapsed.
<html lang="en" prefix="og: http://ogp.me/ns#" class=" js">
<head>
<title>elasticsearch</title>
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>
</head>
<body>
<div class="login">
<div>
<div class="middle-container" id="title">
<h1>Save text to database</h1>
</div>
<div id="form" class="middle-container">
<form action="question.html" onsubmit="return doFunction(this);">
<textarea id="q" name="user" rows="5" cols="80"></textarea>
<button id="clickMe" type="submit" class="btn btn-primary btn-block btn-large">Save Text</button>
</form>
</div>
</div>
<div class="middle-container">
<input type="file" id="selectFiles" value="Import" /><br />
<button onclick="doUpload()" id="import" class="btn">Import</button>
</div>
</div>
</body>
</html>
\ No newline at end of file
<html lang="en" prefix="og: http://ogp.me/ns#" class=" js">
<head>
<title>elasticsearch</title>
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>
</head>
<body>
<div class="login">
<div>
<div class="middle-container">
<h1>Ask Question</h1>
</div>
<div class="middle-container">
<p>After request it will take a few seconds to get a result</p>
</div>
</div>
<form onsubmit="return doAsk(this);">
<div class="middle-container">
<input id="q" type="text" name="u" placeholder="Ask question" required="required"/>
</div>
<div class="middle-container button-submit">
<button id="clickMe" type="submit" class="btn btn-primary btn-block btn-large">Do it!</button>
</div>
</form>
<h1>Answers are: </h1>
<div id="answers">
<ul id="list-answers"></ul>
</div>
</div>
</body>
</html>
\ No newline at end of file
const HOST = "http://localhost:8080/api/";
function doFunction(oFormElement) {
console.log("wrooong");
var savetext = document.getElementById("q").value;
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState === 4 && this.status === 200) {
console.log("aaa");
window.location.href = "question.html";
}
};
xmlhttp.open("POST", HOST + "save");
xmlhttp.setRequestHeader("Content-Type", "application/json");
xmlhttp.send(JSON.stringify({q: savetext}));
console.log(savetext);
return false;
}
function doAsk(oFormElement) {
var savetext = document.getElementById("q").value;
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState === 4 && this.status === 200) {
document.getElementById("list-answers").innerHTML = "";
JSON.parse(this.responseText).map(result => {
showResults(result);
});
}
};
xmlhttp.open("POST", HOST + "search");
xmlhttp.setRequestHeader("Content-Type", "application/json");
xmlhttp.send(JSON.stringify({q: savetext}));
console.log(savetext);
return false;
}
function showResults(text) {
var para = document.createElement("li");
var node = document.createTextNode(text);
para.appendChild(node);
var element = document.getElementById("list-answers");
element.appendChild(para);
}
function doUpload() {
var files = document.getElementById('selectFiles').files;
console.log(files);
if (files.length <= 0) {
return false;
}
var fr = new FileReader();
fr.onload = function(e) {
console.log(e);
document.getElementById('q').value = e.target.result;
}
fr.readAsText(files.item(0));
};
\ No newline at end of file
@import url(https://fonts.googleapis.com/css?family=Open+Sans);
.btn {
display: inline-block;
*display: inline;
*zoom: 1;
padding: 4px 10px 4px;
margin-bottom: 0;
font-size: 13px;
line-height: 18px;
color: #333333;
text-align: center;
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
vertical-align: middle;
background-color: #f5f5f5;
background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
background-image: -ms-linear-gradient(top, #ffffff, #e6e6e6);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
background-image: linear-gradient(top, #ffffff, #e6e6e6);
background-repeat: repeat-x;
filter: progid:dximagetransform.microsoft.gradient(startColorstr=#ffffff, endColorstr=#e6e6e6, GradientType=0);
border-color: #e6e6e6 #e6e6e6 #e6e6e6;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
border: 1px solid #e6e6e6;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
cursor: pointer;
*margin-left: .3em;
}
.btn:hover, .btn:active, .btn.active, .btn.disabled, .btn[disabled] {
background-color: #e6e6e6;
}
.btn-large {
padding: 9px 14px;
font-size: 15px;
line-height: normal;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
.btn:hover {
color: #333333;
text-decoration: none;
background-color: #e6e6e6;
background-position: 0 -15px;
-webkit-transition: background-position 0.1s linear;
-moz-transition: background-position 0.1s linear;
-ms-transition: background-position 0.1s linear;
-o-transition: background-position 0.1s linear;
transition: background-position 0.1s linear;
}
.btn-primary, .btn-primary:hover {
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
color: #ffffff;
}
.btn-primary.active {
color: rgba(255, 255, 255, 0.75);
}
.btn-primary {
background-color: #4a77d4;
background-image: -moz-linear-gradient(top, #6eb6de, #4a77d4);
background-image: -ms-linear-gradient(top, #6eb6de, #4a77d4);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#6eb6de), to(#4a77d4));
background-image: -webkit-linear-gradient(top, #6eb6de, #4a77d4);
background-image: -o-linear-gradient(top, #6eb6de, #4a77d4);
background-image: linear-gradient(top, #6eb6de, #4a77d4);
background-repeat: repeat-x;
filter: progid:dximagetransform.microsoft.gradient(startColorstr=#6eb6de, endColorstr=#4a77d4, GradientType=0);
border: 1px solid #3762bc;
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.4);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.5);
}
.btn-primary:hover, .btn-primary:active, .btn-primary.active, .btn-primary.disabled, .btn-primary[disabled] {
filter: none;
background-color: #4a77d4;
}
.btn-block {
width: 100%;
display: block;
}
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
-o-box-sizing: border-box;
box-sizing: border-box;
}
html {
width: 100%;
height: 100%;
overflow: hidden;
}
body {
width: 100%;
height: 100%;
font-family: 'Open Sans', sans-serif;
background: #092756;
background: -moz-radial-gradient(0% 100%, ellipse cover, rgba(104, 128, 138, .4) 10%, rgba(138, 114, 76, 0) 40%), -moz-linear-gradient(top, rgba(57, 173, 219, .25) 0%, rgba(42, 60, 87, .4) 100%), -moz-linear-gradient(-45deg, #670d10 0%, #092756 100%);
background: -webkit-radial-gradient(0% 100%, ellipse cover, rgba(104, 128, 138, .4) 10%, rgba(138, 114, 76, 0) 40%), -webkit-linear-gradient(top, rgba(57, 173, 219, .25) 0%, rgba(42, 60, 87, .4) 100%), -webkit-linear-gradient(-45deg, #670d10 0%, #092756 100%);
background: -o-radial-gradient(0% 100%, ellipse cover, rgba(104, 128, 138, .4) 10%, rgba(138, 114, 76, 0) 40%), -o-linear-gradient(top, rgba(57, 173, 219, .25) 0%, rgba(42, 60, 87, .4) 100%), -o-linear-gradient(-45deg, #670d10 0%, #092756 100%);
background: -ms-radial-gradient(0% 100%, ellipse cover, rgba(104, 128, 138, .4) 10%, rgba(138, 114, 76, 0) 40%), -ms-linear-gradient(top, rgba(57, 173, 219, .25) 0%, rgba(42, 60, 87, .4) 100%), -ms-linear-gradient(-45deg, #670d10 0%, #092756 100%);
background: -webkit-radial-gradient(0% 100%, ellipse cover, rgba(104, 128, 138, .4) 10%, rgba(138, 114, 76, 0) 40%), linear-gradient(to bottom, rgba(57, 173, 219, .25) 0%, rgba(42, 60, 87, .4) 100%), linear-gradient(135deg, #670d10 0%, #092756 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#3E1D6D', endColorstr='#092756', GradientType=1);
}
.login {
#position: absolute;
#top: 50%;
#left: 50%;
#margin: -150px 0 0 -150px;
#height: 300px;
}
.middle-container {
display: flex;
justify-content: center;
}
.button-submit {
width: 400px;
margin: auto;
}
.login h1 {
color: #fff;
text-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
letter-spacing: 1px;
text-align: center;
}
input {
width: 400px;
margin-bottom: 10px;
background: rgba(0, 0, 0, 0.3);
border: none;
outline: none;
padding: 10px;
font-size: 13px;
color: #fff;
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
border: 1px solid rgba(0, 0, 0, 0.3);
border-radius: 4px;
box-shadow: inset 0 -5px 45px rgba(100, 100, 100, 0.2), 0 1px 1px rgba(255, 255, 255, 0.2);
-webkit-transition: box-shadow .5s ease;
-moz-transition: box-shadow .5s ease;
-o-transition: box-shadow .5s ease;
-ms-transition: box-shadow .5s ease;
transition: box-shadow .5s ease;
}
input:focus {
box-shadow: inset 0 -5px 45px rgba(100, 100, 100, 0.4), 0 1px 1px rgba(255, 255, 255, 0.2);
}
#answers {
display: flex;
justify-content: center;
}
#list-answers {
color: #FFF
}
#list-answers li {
}
\ No newline at end of file
//curl -XPUT -H "Content-Type: application/json" http://localhost:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'
//PUT text
//PUT text/_settings
//{
// "index": {
// "blocks": {
// "read_only_allow_delete": "false"
// }
// }
//}
//POST text/document/_mapping
{
"properties":{
"Name":{
"type":"text",
"analyzer":"keyword",
"fields":{
"raw":{
"type":"keyword"
}
}
},
"EntityType":{
"type":"text",
"analyzer":"english",
"fields":{
"raw":{
"type":"keyword"
}
}
},
"EntityPosition": {
"type": "long"
},
"Relevance": {
"type": "integer"
},
"SentenceStartIndex": {
"type": "long"
},
"SentenceEndIndex": {
"type": "long"
},
"SentimentScore": {
"type": "integer"
},
"PositiveAspectsCount": {
"type": "integer"
},
"NegativeAspectsCount": {
"type": "integer"
},
"NeutralAspectsCount": {
"type": "integer"
},
"EntitySource": {
"type":"text",
"analyzer":"english",
"fields":{
"raw":{
"type":"keyword"
}
}
},
"Aspects": {
"properties": {
"AspectName": {
"type": "text",
"analyzer":"english",
"fields": {
"raw": {
"type": "text"
}
}
},
"AspectSentiment": {
"type": "integer"
},
"AspectPosTag": {
"type": "text",
"analyzer":"keyword",
"fields": {
"raw": {
"type": "keyword"
}
}
},
"EntityDirectAspect": {
"type": "boolean"
}
}
}
}
}
\ No newline at end of file
// SAVE EXAMPLE
{
"lang" : "eng",
"q" : "Martin has blond hair"
}
SEARCH EXAMPLE
{
"lang" : "eng",
"q" : "What color is Martin's hair?"
}
\ No newline at end of file
This diff is collapsed.
{
"name": "pae",
"version": "1.0.0",
"description": "",
"main": "server.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"body-parser": "^1.17.2",
"elasticsearch": "^14.0.0",
"express": "^4.15.4",
"fs": "0.0.1-security",
"http": "0.0.0",
"jsonfile": "^3.0.1",
"moment": "^2.18.1",
"mongoose": "^4.10.8",
"openstack-wrapper": "^2.1.7",
"promise": "^8.0.1",
"promise-map": "^1.2.0",
"querystring": "^0.2.0",
"request": "^2.81.0",
"request-promise": "^4.2.2"
},
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-preset-env": "^1.6.0",
"babel-preset-es2015": "^6.24.1"
}
}
let fs = require('fs');
module.exports = function (app) {
fs.readdirSync(__dirname).forEach(function (file) {
if (file === "index.js") return;
let name = file.substr(0, file.indexOf('.'));
require('./' + name)(app);
});
};
\ No newline at end of file
module.exports = function (router) {
const indexName = "test8";
const indexType = "document";
let request = require('request');
let querystring = require('querystring');
let elasticsearch = require('elasticsearch');
let Promise = require('bluebird');
let rp = require('request-promise');
let indexMapping = {
"properties": {
"Name": {
"type": "text",
"analyzer": "keyword",
"fields": {
"raw": {
"type": "keyword"
}
}
},
"EntityType": {
"type": "text",
"analyzer": "english",
"fields": {
"raw": {
"type": "keyword"
}
}
},
"EntityPosition": {
"type": "long"
},
"Relevance": {
"type": "integer"
},
"SentenceStartIndex": {
"type": "long"
},
"SentenceEndIndex": {
"type": "long"
},
"SentimentScore": {
"type": "integer"
},
"PositiveAspectsCount": {
"type": "integer"
},
"NegativeAspectsCount": {
"type": "integer"
},
"NeutralAspectsCount": {
"type": "integer"
},
"EntitySource": {
"type": "text",
"analyzer": "english",
"fields": {
"raw": {
"type": "keyword"
}
}
},
"Aspects": {
"properties": {
"AspectName": {
"type": "text",
"analyzer": "english",
"fields": {
"raw": {