ricerca testo: aggiunto contesto
This commit is contained in:
parent
fd859f3463
commit
449b30ea64
|
@ -1410,13 +1410,40 @@ function resetFrasi(){
|
||||||
}
|
}
|
||||||
if (jsonQuery['Clausola0']['lemma_forma'] == 'testo') {
|
if (jsonQuery['Clausola0']['lemma_forma'] == 'testo') {
|
||||||
searchwords = jsonQuery['Clausola0']['queryText'].trim().split(' ')
|
searchwords = jsonQuery['Clausola0']['queryText'].trim().split(' ')
|
||||||
|
var contesto = JSON.parse(jsonQuery['Clausola0']['contesto'])
|
||||||
|
var inf = []
|
||||||
|
var pur = []
|
||||||
|
var par = []
|
||||||
|
var noContext=true
|
||||||
|
if (!(contesto[0].every(item => item === 0) && contesto[1].every(item => item === 0) && contesto[2].every(item => item === 0))) {
|
||||||
|
//inf=contesto[0].some(item => item !== 0)
|
||||||
|
noContext=false
|
||||||
|
inf = contesto[0].reduce((a, e, i) => {
|
||||||
|
if (e === 1)
|
||||||
|
a.push(i);
|
||||||
|
return a;
|
||||||
|
}, []);
|
||||||
|
pur = contesto[1].reduce((a, e, i) => {
|
||||||
|
if (e === 1)
|
||||||
|
a.push(i);
|
||||||
|
return a;
|
||||||
|
}, []);
|
||||||
|
par = contesto[2].reduce((a, e, i) => {
|
||||||
|
if (e === 1)
|
||||||
|
a.push(i);
|
||||||
|
return a;
|
||||||
|
}, []);
|
||||||
|
}
|
||||||
|
|
||||||
var resultsInCantica=[]
|
var resultsInCantica=[]
|
||||||
var resultsInCanto=[]
|
var resultsInCanto=[]
|
||||||
console.log('frase length '+searchwords.length)
|
console.log('frase length '+searchwords.length)
|
||||||
executeLocalSearch(searchwords, formeprima, (formeprima.length-searchwords.length), cantiche[0], resultsInCantica, resultsInCanto)
|
if(noContext || inf.length)
|
||||||
executeLocalSearch(searchwords, formeseconda, (formeseconda.length-searchwords.length), cantiche[1], resultsInCantica, resultsInCanto)
|
executeLocalSearch(searchwords, formeprima, (formeprima.length-searchwords.length), cantiche[0], inf, resultsInCantica, resultsInCanto)
|
||||||
executeLocalSearch(searchwords, formeterza, (formeterza.length-searchwords.length), cantiche[2], resultsInCantica, resultsInCanto)
|
if(noContext || pur.length)
|
||||||
|
executeLocalSearch(searchwords, formeseconda, (formeseconda.length-searchwords.length), cantiche[1], pur, resultsInCantica, resultsInCanto)
|
||||||
|
if(noContext || par.length)
|
||||||
|
executeLocalSearch(searchwords, formeterza, (formeterza.length-searchwords.length), cantiche[2], par, resultsInCantica, resultsInCanto)
|
||||||
if (listarisultati.length){
|
if (listarisultati.length){
|
||||||
//evidenzia risultati
|
//evidenzia risultati
|
||||||
for (ris of listarisultati) {
|
for (ris of listarisultati) {
|
||||||
|
@ -1439,7 +1466,7 @@ function resetFrasi(){
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function executeLocalSearch(testo, forme, limit, cantica, resultsInCantica, resultsInCanto){
|
function executeLocalSearch(testo, forme, limit, cantica, cont, resultsInCantica, resultsInCanto){
|
||||||
|
|
||||||
for (var ip=0; ip<=limit; ip++){
|
for (var ip=0; ip<=limit; ip++){
|
||||||
var fnd=true
|
var fnd=true
|
||||||
|
@ -1451,6 +1478,9 @@ function resetFrasi(){
|
||||||
}
|
}
|
||||||
if (fnd){
|
if (fnd){
|
||||||
//console.log('ipfound: '+forme[ip].split('_')[2]+' - '+forme[(ip+testo.length-1)].split('_')[2])
|
//console.log('ipfound: '+forme[ip].split('_')[2]+' - '+forme[(ip+testo.length-1)].split('_')[2])
|
||||||
|
if(cont.length && !(parseInt(forme[ip].split('_')[1]) in cont)){
|
||||||
|
continue
|
||||||
|
}
|
||||||
resultsInCantica.push(cantica)
|
resultsInCantica.push(cantica)
|
||||||
resultsInCanto.push(cantica+'Canto '+forme[ip].split('_')[1])
|
resultsInCanto.push(cantica+'Canto '+forme[ip].split('_')[1])
|
||||||
var tstar= parseInt(forme[ip].split('_')[2])
|
var tstar= parseInt(forme[ip].split('_')[2])
|
||||||
|
|
44
js/utils.js
44
js/utils.js
|
@ -557,51 +557,7 @@ function buildSQ(stquery) {
|
||||||
|
|
||||||
//Crea le triple per WHERE se cerco il testo
|
//Crea le triple per WHERE se cerco il testo
|
||||||
|
|
||||||
/*
|
|
||||||
{
|
|
||||||
"type": "filter",
|
|
||||||
"expression": {
|
|
||||||
"type": "operation",
|
|
||||||
"operator": "=",
|
|
||||||
"args": [
|
|
||||||
{
|
|
||||||
"type": "functionCall",
|
|
||||||
"function": {
|
|
||||||
"termType": "NamedNode",
|
|
||||||
"value": "http://www.w3.org/2001/XMLSchema#int"
|
|
||||||
},
|
|
||||||
"args": [
|
|
||||||
{
|
|
||||||
"type": "operation",
|
|
||||||
"operator": "+",
|
|
||||||
"args": [
|
|
||||||
{
|
|
||||||
"termType": "Variable",
|
|
||||||
"value": "pos"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"termType": "Literal",
|
|
||||||
"value": "1",
|
|
||||||
"language": "",
|
|
||||||
"datatype": {
|
|
||||||
"termType": "NamedNode",
|
|
||||||
"value": "http://www.w3.org/2001/XMLSchema#integer"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"distinct": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"termType": "Variable",
|
|
||||||
"value": "Num1"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
function getTestoWherePosFilter(pos1, pos2, dist){
|
function getTestoWherePosFilter(pos1, pos2, dist){
|
||||||
let filterpos=new Object()
|
let filterpos=new Object()
|
||||||
|
|
Loading…
Reference in New Issue