Changeset 31624 for other-projects/hathitrust
- Timestamp:
- 2017-04-21T01:02:28+12:00 (7 years ago)
- Location:
- other-projects/hathitrust/wcsa/extracted-features-solr/trunk/web-portal
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
other-projects/hathitrust/wcsa/extracted-features-solr/trunk/web-portal/index.html
r31623 r31624 173 173 <input type="hidden" id="rows" name="rows" value="20"/> 174 174 175 <!-- 175 176 <input type="text" class="search-in-progress" id="q" name="q" style="width: 600px;"/> 176 <input type="submit" class="search-in-progress" id="search-submit" /> 177 <input type="submit" class="search-in-progress" id="search-submit" /> 177 178 <br> 178 <input type="checkbox" id="group-results-by-id" name="group-results-by-vol" value="on">Group by Volume 179 <input type="checkbox" id="search-all-langs" name="search-all-langs" value="on">Search all Languages 179 --> 180 180 181 <div id="pos-fieldsets"> 182 </div> 183 184 <fieldset class="show-hide-lang"> 185 <legend style="margin-bottom: 5px; padding-top: 15px;"> 186 Other Languages (without modelled parts-of-speech) 187 </legend> 188 <div id="other-langs"> 189 </div> 190 </fieldset> 191 181 <table class="query-table"> 182 <tr> 183 <td>Volume Metadata:</td> 184 <td><input type="text" class="search-in-progress" id="vq" name="vq" 185 placeholder="metaname:metavalue e.g., title_t:farming" 186 style="width: 600px;"/><br /> 187 <input type="checkbox" id="search-all-vfields" name="search-all-vfields" value="on"> Search all volume fields 188 </td> 189 </tr> 190 <tr> 191 <td></td> 192 <td style="color: #aaaaaa; width: 400px; font-size: 14px; line-height: 16px; padding-bottom: 10px;"> 193 Indexed volume metadata fields: accessProfile_t, genre_t, 194 imprint_t, isbn_t, issn_t, issuance_t, 195 language_t, lccn_t, names_t, oclc_t, 196 pubPlace_t, pubDate_t, rightsAttributes_t, 197 title_t, typeOfResource_t 198 </td> 199 </tr> 200 <tr> 201 <td>Page-level text:</td> 202 <td> 203 <input type="text" class="search-in-progress" id="q" name="q" 204 style="width: 600px;"/><br /> 205 <input type="checkbox" id="group-results-by-id" name="group-results-by-vol" value="on"> <span>Group by Volume</span> 206 207 </td> 208 </tr> 209 <tr> 210 <td></td> 211 <td > 212 <input type="submit" class="search-in-progress" id="search-submit" style="float: right;"/> 213 </td> 214 </tr> 215 </table> 216 217 218 219 <div> 220 <input type="checkbox" id="search-all-langs" name="search-all-langs" value="on"> Search all Languages 221 222 <div id="pos-fieldsets"> 223 </div> 224 225 <fieldset class="show-hide-lang"> 226 <legend style="margin-bottom: 5px; padding-top: 15px;"> 227 Other Languages (without modelled parts-of-speech) 228 </legend> 229 <div id="other-langs"> 230 </div> 231 </fieldset> 232 </div> 233 192 234 </form> 193 235 … … 215 257 <li><a href="admin.html">HTRC-EF Solr Admin UI (log in)</a></li> 216 258 <li><a href="luke_lang_mappings.html">Dynamically Generated Language Map (Part-of-Speech, and Other)</a></li> 217 <!--218 <li><a href="/solr/htrc-full-ef_shard6_replica1/admin/luke">Luke XML on shard</a></li>219 -->220 259 <li><a href="/solr/htrc-full-ef20_shard6_replica1/admin/luke">Luke XML on shard</a></li> 221 260 </ul> -
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.