Changeset 31624 for other-projects/hathitrust/wcsa/extracted-features-solr/trunk/web-portal/index.js
- Timestamp:
- 2017-04-21T01:02:28+12:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
other-projects/hathitrust/wcsa/extracted-features-solr/trunk/web-portal/index.js
r31619 r31624 72 72 var page = id_pages[pi]; 73 73 74 var seqnum = page;74 var seqnum = (page==0) ? 1 : page; 75 75 var babel_url = "https://babel.hathitrust.org/cgi/pt?id="+id+";view=1up;seq="+seqnum; 76 76 … … 81 81 html_item += '<span style="font-style: italic;" name="' 82 82 +id+'"><span style="cursor: progress;">Loading ...</span></span><br>'; 83 84 html_item += id + ': <a target="_blank" href="' + babel_url + '">seq ' + seqnum + '</a> '; 83 if (page > 0) { 84 html_item += id + ': <a target="_blank" href="' + babel_url + '">seq ' + seqnum + '</a> '; 85 } 86 else { 87 // skip linking to the 'phony' page 0 88 html_item += id; 89 } 85 90 } 86 91 else { … … 92 97 html_item += ' <span style="font-style: italic;" name="' 93 98 +id+'"><span style="cursor: progress;">Loading ...</span></span><br>'; 94 html_item += '<a target="_blank" href="' + babel_url + '">' + id + ', seq ' + seqnum + '</a>'; 99 100 if (page > 0) { 101 html_item += '<a target="_blank" href="' + babel_url + '">' + id + ', seq ' + seqnum + '</a>'; 102 } 103 else { 104 html_item += '<a target="_blank" href="' + babel_url + '">' + id + ', all pages</a>'; 105 } 106 95 107 html_item += '</p>'; 96 108 } … … 141 153 var id_and_page = doc.id.split(".page-"); 142 154 var id = id_and_page[0]; 143 var seqnum = parseInt(id_and_page[1]) +1; // fix up ingest error 155 var seqnum; 156 if (id_and_page.length>1) { 157 seqnum = parseInt(id_and_page[1]) +1; // fix up ingest error 158 } 159 else { 160 seqnum = 0; 161 } 144 162 var page = seqnum; 145 163 … … 195 213 196 214 var group_by_vol_checked = 0; 215 216 function expand_vfield(q_term,all_vfields) 217 { 218 var vfields = []; 219 var metadata_fields = [ "accessProfile_t", "genre_t", "imprint_t", "isbn_t", "issn_t", 220 "issuance_t", "language_t", "lccn_t", "names_t", "oclc_t", 221 "pubPlace_t", "pubDate_t", "rightsAttributes_t", "title_t", "typeOfResource_t" ]; 222 223 if (all_vfields) { 224 for (var fi=0; fi<metadata_fields.length; fi++) { 225 var vfield = metadata_fields[fi]; 226 vfields.push(vfield+":"+q_term); 227 } 228 } 229 else { 230 if (q_term.match(/:/)) { 231 vfields.push(q_term); 232 } 233 else { 234 // make searching by title the default 235 vfields.push("title_t:"+q_term); 236 } 237 } 238 239 240 var vfields_str = vfields.join(" OR "); 241 242 return vfields_str; 243 } 244 245 function expand_vquery_field_and_boolean(query,all_vfields) 246 { 247 // boolean terms 248 // => pos and lang field 249 if (query === "") { return "" } 250 251 var query_terms = query.split(/\s+/); 252 var query_terms_len = query_terms.length; 253 254 var bool_query_term = []; 255 256 var i=0; 257 var prev_bool = ""; 258 259 for (var i=0; i<query_terms_len; i++) { 260 var term = query_terms[i]; 261 if (term.match(/^(and|or)$/i)) { 262 prev_bool = term.toUpperCase(); 263 } 264 else { 265 if (i>0) { 266 if (prev_bool == "") { 267 prev_bool = "AND"; 268 } 269 } 270 271 var expanded_term = expand_vfield(term,all_vfields); // **** only difference to POS version 272 273 term = "(" + expanded_term + ")"; 274 275 if (prev_bool != "") { 276 bool_query_term.push(prev_bool); 277 prev_bool = ""; 278 } 279 bool_query_term.push(term); 280 } 281 } 282 283 var bool_query = bool_query_term.join(" "); 284 285 return bool_query; 286 } 197 287 198 288 … … 242 332 // boolean terms 243 333 // => pos and lang field 334 if (query === "") { return "" } 244 335 245 336 var query_terms = query.split(/\s+/); … … 293 384 var arg_start = $('#start').attr('value'); 294 385 var arg_rows = $('#rows').attr('value'); 386 295 387 var q_text = $('#q').val(); 296 388 var vq_text = $('#vq').val(); 389 297 390 group_by_vol_checked = $('#group-results-by-id:checked').length; 298 var search_all_checked = $('#search-all-langs:checked').length; 299 300 if (q_text === "") { 391 392 var search_all_langs_checked = $('#search-all-langs:checked').length; 393 var search_all_vfields_checked = $('#search-all-vfields:checked').length; 394 395 if ((q_text === "") && (vq_text === "")) { 301 396 $('.search-in-progress').css("cursor","auto"); 302 alert("No query term entered");397 alert("No query term(s) entered"); 303 398 return; 304 399 } 305 400 306 arg_q = expand_query_field_and_boolean(q_text,langs_with_pos,langs_without_pos,search_all_checked); 307 401 arg_vq = expand_vquery_field_and_boolean(vq_text,search_all_vfields_checked); 402 403 arg_q = expand_query_field_and_boolean(q_text,langs_with_pos,langs_without_pos,search_all_langs_checked); 404 405 //console.log("*** arg_vq = " + arg_vq); 406 //console.log("*** arg_q = " + arg_q); 407 308 408 if (arg_q == "") { 309 $('.search-in-progress').css("cursor","auto"); 310 alert("No languages selected"); 311 return; 312 } 313 409 if (arg_vq == "") { 410 // arg_vq was empty to start with, but attempt to expand non-empty arg_q 411 // lead to an empty arg_q being returned 412 $('.search-in-progress').css("cursor","auto"); 413 alert("No languages selected"); 414 return; 415 } 416 else { 417 arg_q = arg_vq; 418 } 419 } 420 else { 421 if (arg_vq != "") { 422 // join the two with an AND 423 arg_q = "(" + arg_vq + ")" + " OR " + "(" + arg_q + ")"; 424 425 // also implies 426 group_by_vol_checked = true; 427 } 428 } 429 430 //console.log("*** NOW arg_q = " + arg_q); 314 431 315 432 // Example search on one of the htrc-full-ef fields is:
Note:
See TracChangeset
for help on using the changeset viewer.