[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • Addon RexSearch (Fulltext-Search-Addon) - Seite 28
Seite 28 von 28

Re: Addon RexSearch (Fulltext-Search-Addon)

Verfasst: 6. Okt 2015, 20:06
von Kucki2
Hi Thomas,

ich habe RexSearch jetzt auch mit Redaxo 4.6 im Einsatz. Leider tritt bei mir das gleiche "Problem" mit der Ähnlichkeitssuche auf wie bei dir. Hast du dafür zwischenzeitlich eine Lösung gefunden.

Grüße, Antje.

Re: Addon RexSearch (Fulltext-Search-Addon)

Verfasst: 7. Okt 2015, 16:12
von Thomas.Skerbis
Hi, nein leider nicht. Habe die Ähnlichkeitssuche abgeschaltet.

Re: Addon RexSearch (Fulltext-Search-Addon)

Verfasst: 30. Okt 2015, 17:31
von Xong
Könnt ihr mal eure Settings und die Modulausgabe posten?
Oder einen Zugang zum (Test)system anlegen? (Mit FTP, Redaxo MySQL)

Re: Addon RexSearch (Fulltext-Search-Addon)

Verfasst: 31. Okt 2015, 18:15
von Xong
Da war wohl eine Aktualisierung des Addons nicht mehr mit den Beispielmodulen konform.
Ich hab die Beispielmodule entsprechend angepasst.

Eventuell behebt das auch den Fehler von Ralf.

Re: Addon RexSearch (Fulltext-Search-Addon)

Verfasst: 3. Nov 2015, 00:26
von dpf_dd
Hi Xong :)

super Add-On, spart mir viel Zeit und Nerven (und Knowhow) ;)
Das i-Tüpfelchen wäre, wenn man zusätzlich zu den ohnehin sehr reichhaltigen Einstellungsmöglichkeiten noch einzelne Module von der Suche ausschließen könnte.

Ich habe z.B. bei einem Projekt in der Marginalspalte eine Liste mit Links zu Personen. Diese Liste ist immer das gleiche Modul (datenbankgespeist). Es wäre irgendwie cool, wenn diese Listen mir nicht die Trefferliste künstlich aufblähen.

Könnte man da nicht evtl. bei den Options ein Input-Feld einbauen, in das kommagetrennt auszuschließende Modul-IDs einzutragen gehen. Dann die DB-Abfrage auf das Feld der Modul-ID erweitern (müsste ja die gleiche Tabelle sein) und mit einer WHERE-Bedingung die eingetragenen Modul-IDs vom SELECT ausschließen. Ich denke eigentlich, das sollte so machbar sein. Nur hab ich keine Ahnung inwieweit das performance-technisch ein Problem sein könnte? Kannst du dazu etwas sagen? :)

Vielen Dank und
MfG- Stefan / dpf_dd

Re: Addon RexSearch (Fulltext-Search-Addon)

Verfasst: 3. Nov 2015, 11:04
von Xong
Hi Stefan,

das klingt zwar erstmal nach einer guten Idee, allerdings gibt es zwei Gründe, die dagegen sprechen:
  1. Die Blöcke werden sowieso in den Suchcache geschrieben, wenn der ganze Artikel indexiert wird. Da RexSearch sich auf Redaxo-Funktionen verlässt, kann man hier erstmal wenig machen.
  2. Es lässt sich jetzt schon realisieren: Über das Plaintext-Plugin kannst du ganze HTML-Elemente mittels CSS-Selektoren ausschließen. Dafür müssen deine nicht erwünschten Blöcke einfach nur eindeutig selektiert werden können.
Performant ist diese Lösung auch, weil sie schon bei der Indexierung ansetzt.
Ich hab das Addon so entwickelt, dass die Indexierung so aufwändig wie möglich ist, die Suche aber nur so wie nötig. ;)

Re: Addon RexSearch (Fulltext-Search-Addon)

Verfasst: 3. Nov 2015, 11:44
von dpf_dd
Ah, Punkt 2 ist sehr geil.
Ich hatte bei der Ausgabe entdeckt, dass du den Text aus DB-Feldern bereits in 2 Varianten einbindest, a) so wie er in der DB steht und b) als Plaintext. Daher war mir nicht klar, wozu ich das Plaintext-Plugin noch benötige. Jetzt weiß ich es. Lösung funktioniert tadellos. Vielen Dank 8)

Re: Addon RexSearch (Fulltext-Search-Addon)

Verfasst: 9. Nov 2015, 17:06
von alexplus
Hi Xong,

ich habe deine Module im Wiki angepasst und $_REQUEST durch rex_request('rexsearch', 'string') ersetzt. Ich hoffe, das ist okay so, wenn nicht, kannst du es ja wieder auf die Version davor zurückspielen.

VG
Alex

Re: Addon RexSearch (Fulltext-Search-Addon)

Verfasst: 9. Nov 2015, 18:21
von Xong
Hi Alex,

das kannst du gerne machen.

Ich hab das nur so gemacht, weil Redaxo die Eingaben mittels addslashes vorbehandelt hat.
Ich weiß grad nicht, ob das immer noch der Fall ist.

Re: Addon RexSearch (Fulltext-Search-Addon)

Verfasst: 9. Nov 2015, 21:02
von alexplus
Skerbis hat geschrieben:Hallo und Danke für Rexsearch.
1) Gibt es eine Möglichkeit dem Addon mitzuteilen, dass es die Treffer nach z.B. Create-Date oder updatedate sortiert ausgibt?
Das wollte ich auch mal ausprobieren und bin auf diese Zeile gestoßen, müsste also gehen:

https://github.com/xong/rexsearch/blob/ ... .php#L1367

Leider reichen meine Trial-and-Error-Skills nicht aus. Sobald ich das gewünschte Array mitgebe, bekomme ich 0 Treffer. Mache ich was falsch?

$order['prename'] = 'ASC';

$contacts_serach = new RexSearch();
$contacts_serach->setLimit(array($start = isset($_GET['start'])?intval($_GET['start']):0, SHOWMAX));
$contacts_serach->doSearchArticles(false);
$contacts_serach->searchInDbColumn($REX['TABLE_PREFIX'].'contacts', 'prename');
$contacts_serach->searchInDbColumn($REX['TABLE_PREFIX'].'contacts', 'name');
// $contacts_serach->setOrder($order); // Wenn ich diese auskommentiere, bekomme ich 0 Ergebnisse

$contacts = $contacts_serach->search($_REQUEST['search']);

if($contacts['count'] > 0)
{
...

Re: Addon RexSearch (Fulltext-Search-Addon)

Verfasst: 17. Nov 2015, 11:06
von Bio
Hallo zusammen,

wollte heute mal dieses Addon ausprobieren. Leider bekomme ich bei der Modulausgabe immer eine Fehlermeldung. Egal welches Beispielmodul ich auch einsetze.

Fatal error: Can't use function return value in write context in E:\xampp\htdocs\testseite\redaxo\include\classes\class.rex_article_base.inc.php(361) : eval()'d code on line 74

Bitte um Hilfe.
Rene

Re: Addon RexSearch (Fulltext-Search-Addon)

Verfasst: 17. Nov 2015, 11:30
von Ingo
Bio hat geschrieben:Fatal error: Can't use function return value in write context
Wenn man im Cyberweb nach der Fehlermeldung sucht findet man das hier: http://stackoverflow.com/a/17139306. Vielleicht ist eine PHP Version < 5.5 dein Problem.

Re: Addon RexSearch (Fulltext-Search-Addon)

Verfasst: 17. Nov 2015, 12:37
von Bio
Upps, danke für die Brille. ;-)

Re: Addon RexSearch (Fulltext-Search-Addon)

Verfasst: 11. Jan 2016, 11:50
von iceman-fx
Hi Leute,

ich nutze rexSearch und möchte nun eine Einschränkung nach Kategorien hinzufügen.
Jedoch bringt der Code aus dem Wiki keine Ausgabe:

Code: Alles auswählen

<?php
$cat_select = new rex_category_select(true, REX_CLANG_ID, false, false);
	$cat_select->setAttribute('id', 'skat');
	$cat_select->setAttribute('name', 'skat');
	$cat_select->setAttribute('size', '1');
	$cat_select->setSelected(rex_request('skat', 'array', array()));
$cat_select->show();
?>
Hat jemand eine Idee, warum der Code keine Kategorien auflistet ?

Re: Addon RexSearch (Fulltext-Search-Addon)

Verfasst: 14. Jan 2016, 13:51
von Xong
Hi,

der Code sieht soweit richtig aus.
Wird denn überhaupt ein HTML-Code ausgegeben?

Re: Addon RexSearch (Fulltext-Search-Addon)

Verfasst: 12. Feb 2016, 02:11
von Xong
Hallo,

da ich ein paar Anfragen bekommen habe, wann ich RexSearch für Redaxo 5 umsetzen werde, hier der aktuelle Status.

Ich bin im Moment mit Arbeit extrem ausgelastet und kann deshalb noch nicht genau sagen, wann RexSearch für Redaxo 5 erscheint.
Auch würde ich gern für die Entwicklung von RexSearch zukünftig einen kleinen Beitrag verlangen. Auf dem letzten Redaxotag in Frankfurt habe ich diesbezüglich auch schon sehr positives Feedback bekommen.
Diesen Schritt würde ich deshalb gern mit euch zusammen planen.

Und jetzt mal Klartext: RexSearch für Redaxo 5 wird nicht vor Ende Mai erscheinen.
Das liegt zum einen an meiner derzeitigen Auslastung, zum anderen aber auch an der Komplexität, die die Portierung mit sich bringt.

Dank für euer Verständnis.
Ich melde mich Ende des Monats nochmal an dieser Stelle.

Re: Addon RexSearch (Fulltext-Search-Addon)

Verfasst: 19. Feb 2016, 00:18
von Jan.Kristinus
Hallo Robert,

sobald Du Dich mit dem Thema beschäftigst, sag bescheid. Wenn Du weisst welcher Aufwand entsteht können wir das auch gerne pragnanter posten, so dass Du weisst, wieviel die COmmunity beisteuern kann. Vielleicht beschleunigt das sogar den Prozess .. Melde Dich, wenn ich helfen kann.

lg Jan

Re: Addon RexSearch (Fulltext-Search-Addon)

Verfasst: 16. Mär 2016, 21:03
von steri
Hallo,

ich hab grad ein Problem mit der Indexierung die ich mir nicht ganz erklären kann:

Zum einen funktioniert die Indexierung mal genrell nur mit "Indexierung der Artikel über eine HTTP-GET-Anfrage". D.h. bei der schrittweisen indexierung werden alle Artikel angeführt und scheinbar indexiert - nur glaube ich wird nichts in die DB geschrieben.
Aktuell steht nur in der rex_587_searchindex was und da immer nur
(740,'2',2,'rex_article','','article',0,'','','','',' ',''),
(741,'3',3,'rex_article','','article',0,'','','','',' ',''),
(742,'4',4,'rex_article','','article',0,'','','','',' ',''),

Wenn ich eine Indexierung über den cache machen will geht das gar nicht - das script fängt gar nicht erst an die artikel aufzulisten.

Folglich ist das Problem dass egal welches suchwort ich eingebe nie etwas gefunden wird.

Das eigenartige ist dass es zu Beginn schon funktioniert hat (indexierung über cache). Jetzt wurde die Seite mit sehr vielen Artikeln befüllt und nun hauts irgendwie nicht mehr hin. Auch suchecache löschen usw. hat nichts gebracht.

REDAXO: 4.6.2
PHP v ist 5.4.45-0+deb7u2
rexsearch Version: 0.7.8

Danke für Hilfe!
lg steri

Re: Addon RexSearch (Fulltext-Search-Addon)

Verfasst: 17. Mär 2016, 18:02
von Xong
Hi,

kannst du mir einen Backendzugang geben?
Dann kann ich mir das mal anschauen.

Dass da gar nichts indexiert wird, ist sehr komisch.

Re: Addon RexSearch (Fulltext-Search-Addon)

Verfasst: 17. Mär 2016, 23:22
von steri
hallo,
hab die indexierung wieder zum laufen bekommen indem ich die Startseite bzw. Artikel ID 1 von der Suche bzw. Indexierung ausgenomme habe. Auf der Startseite werden viele andere Artikel angeteasert - da waren ein paar nicht mehr vorhanden Artikel dabei - die hab ich nun raus gelöscht - nun wird auch Artikel ID 1 wieder problemlos indexiert.

Re: Addon RexSearch (Fulltext-Search-Addon)

Verfasst: 7. Jun 2016, 00:11
von majas
Hallo,

ich hätte da mal eine Frage, gibt es für die aktuelle RexSearch Version eine Suggest Funktion.
Das JQuery Modul Autocomplete ist ja nicht mehr Online

Danke und Gruß Andy

Rex Version 4.7

Re: Addon RexSearch (Fulltext-Search-Addon)

Verfasst: 7. Jun 2016, 09:27
von alexplus
majas hat geschrieben:Hallo,
ich hätte da mal eine Frage, gibt es für die aktuelle RexSearch Version eine Suggest Funktion.
Rex Version 4.7
Du kannst sie selbst nachbauen und brauchst dafür

1. jQuery Autocomplete
https://jqueryui.com/autocomplete/#remote oder
https://jqueryui.com/autocomplete/#remote-jsonp

2. Ein Template, das nur den Artikel ausgibt ohne HTML

3. Einen Artikel, bspw. "Suchergebnis-Daten"

4. Ein Modul, bspw. "Suchergebnis-Daten", das den Such-Parameter des jQuery-Scripts entgegen nimmt und Ergebnisdaten ausliefert.

In meinem nachfolgenden Code-Beispiel habe ich, weil ich mit JSON noch nicht so viel gemacht habe, ein Modul, das den Suchparameter entgegennimmt und das HTML für die Suchergebnis-Box ausgibt.

PHP

Code: Alles auswählen

$html = '';
$html .= '<div class="search-result-item">';
$html .= '<img src="/imagetypes/contacts/###image###"/>';
$html .= '<div class="contact-title">###title###</div>';
$html .= '<div class="contact-description">###description###</div>';
$html .= '<div class="contact-actions"><a href="###url###">###url-text###</a></div>';
$html .= '</div>';	


$term = $_REQUEST['search'];
if(!empty($_REQUEST['search']))
{
       /* Reguläre Artikelsuche 
	$pages_serach = new RexSearch();
	$pages_serach->setLimit(array($offset, 10));
	$pages_serach->doSearchArticles(true);
 	$pages_serach->searchInDbColumn('rex_article', 'name');
 	$pages_serach->searchInDbColumn('rex_article', 'seo_description');
	$pages = $pages_serach->search($_REQUEST['search']); */

	/* Datenbank "Kontakte" durchsuchen */
	$contacts_serach = new RexSearch();
	$contacts_serach->setLimit(array($start = isset($_GET['start'])?intval($_GET['start']):0, 3));
	$contacts_serach->doSearchArticles(false);
	$contacts_serach->searchInDbColumn($REX['TABLE_PREFIX'].'xf_contacts', 'prename');
	$contacts_serach->searchInDbColumn($REX['TABLE_PREFIX'].'xf_contacts', 'name');
	$contacts_serach->searchInDbColumn($REX['TABLE_PREFIX'].'xf_contacts', 'job');
	$contacts_serach->searchInDbColumn($REX['TABLE_PREFIX'].'xf_contacts', 'name_short');
	$contacts = $contacts_serach->search($_REQUEST['search']);
?>



<!-- Ausgabe Suchergebnisse Kontakte -->
	<?
		if($contacts['count'] > 0)
	{
	echo '<div class="notice success"><i class="fa fa-exclamation-circle"></i>'.$contacts['count'].' Personen gefunden.</div>';
	echo '<div class="layout-contact">';
	
		foreach ($contacts['hits'] as $hit) {


			# print_r($hit);

			// Format Output Strings And Hightlight Matches
			$title = preg_replace("/".$term."/i", "<strong class='highlight'>$0</strong>", $hit['values']['prename']." ".$hit['values']['name']);

			// Insert Name
			$output = str_replace('###title###', $title, $html);
			$output = str_replace('###image###', $hit['values']['image'], $output);
			$output = str_replace('###description###', $hit['values']['job'], $output);
			$output = str_replace('###url###', "", $output);
			$output = str_replace('###url-text###', "Mail schreiben", $output);
			echo($output);
		}


		if($contacts['count'] > 3) {

			// Insert Name
			$output = str_replace('###title###', "Weitere Personen", $html);
			$output = str_replace('###image###', "contacts_default.jpg", $output);
			$output = str_replace('###description###', "", $output);
			$output = str_replace('###url###', "", $output);
			$output = str_replace('###url-text###', "Alle anzeigen", $output);
			echo($output);

		}

	} else {
	
		echo('<div class="notice error">Keine Personen gefunden</div>');
	}
	?>
</div>
Javascript:

Code: Alles auswählen

// AJAX-Suche
$(document).ready(function() {  

	// Live Search
	// On Search Submit and Get Results
	function search() {
		var query_value = $('input.search').val();
		console.log("query_value: "+query_value);
		$('b#search-string').text(query_value);
		if(query_value !== ''){
			$.ajax({
				type: "POST",
				[b]url: "/suchergebnis-daten/",[/b]
				data: { search: query_value },
				cache: false,
				success: function(html){
					$("#results").html(html);
					console.log("html:"+html);
					$("body").addClass("has-overlay");
				}
			});
		}return false;    
	}

	$("input.search").on("keyup", function(e) {
		// Set Timeout
		clearTimeout($.data(this, 'timer'));
		console.log(e);

		// Set Search String
		var search_string = $(this).val();
		console.log(search_string);

		// Do Search
		if (search_string == '') {
			$("#results").fadeOut();
		}else{
			$("#results").fadeIn();
			$(this).data('timer', setTimeout(search, 100));
		};
	});

});

Das ist jetzt nicht 1:1 kopierfertig aber vlt. ein guter Ansatz für dich.