Solr uses a method for highlighting:
XML "" node "doc", . - :
<doc>
<str name="body">Merge transfer will merge one item with another. The new item can be either from same location or from different location. Merge transfer directions: Open your Paper Tiger Online and select the database. Select item(s) you want to merge except for the one you want to merge the items into, click on Transfer and select Merge. A pop up will be opened asking New Location, once you select the location, the items in the location will be loaded in to the "File to Merge". Select a file in the "File to Merge" list. Choose whether you want to be reminded to move this file or not Click Merge File Add any additional keywords, notes, action date, change category (if necessary) Click Merge Item button If you chose to be reminded, you'll need to click the Confirm box to confirm the merge, then the merge will happen. (You can also cancel the merge from the Confirm page) </str>
<str name="current-tags"/>
<str name="id">141156</str>
<str name="title">What is a merge transfer? How do I merge files?</str>
</doc>
XML resutls "lst" node "". , node "lst" node , . - :
<lst name="141154">
<arr name="body">
<str>Transfers are used to move or <em>merge</em> the items from one location and another location and creating duplicates items in the locations. You might want to move and item from Action to Reference or Archive to an off-site location. You would want to move the item in Paper Tiger to ensure you can find it</str>
</arr>
</lst>
- "" node . , , , "" node , , . , .
, , .
cURL_address($curl_url);
$xml = new SimpleXMLElement($data);
foreach ($xml->children() as $node) {
$arr = $node->attributes();
$no_results = FALSE;
if ($arr["name"] == "response" && $arr["numFound"] == 0) {
echo "No results found for '". $query ."'";
$no_results = TRUE;
}
if ($arr["name"] == "response") {
if ($no_results != TRUE) {
echo "<h4 id=\"search_results\">Search results for '".$query."'</h4>";
}
foreach ($node->doc as $response) {
$entry_title = $response->str[3];
$entry_body = substr($response->str[0], 0, 300)."…";
$entry_id = $response->str[2];
$entry_tags = $response->str[1];
$orig_body_beggining = substr($response->str[0], 0, 10);
$orig_body_end = substr($response->str[0], -10);
foreach ($xml->lst[1]->lst as $hl_data) {
$arr2 = $hl_data->attributes();
$hl_arr = $arr2["name"];
if ((string)$entry_id == (string)$hl_arr) {
foreach ($hl_data->arr as $hl_content) {
$arr3 = $hl_content->attributes();
switch($arr3['name']) {
case 'body':
$f_ellip = NULL;
$l_ellip = NULL;
if ($orig_body_beggining != substr((string)$hl_content->str, 0, 10)) {
$f_ellip = "… ";
}
if ($orig_body_end != substr((string)$hl_content->str, 0, -10)) {
$l_ellip = " …";
}
$entry_body = $f_ellip.(string)$hl_content->str.$l_ellip;
break;
case 'title':
$entry_title = (string)$hl_content->str;
break;
case 'current-tags':
$entry_tags = (string)$hl_content->str;
break;
}
}
}
}
, !