loupe-php / loupe

A full text search engine with tokenization, stemming, typo tolerance, filters and geo support based on only PHP and SQLite.
MIT License
271 stars 8 forks source link

Highliting #69

Closed Toflar closed 8 months ago

Toflar commented 8 months ago

Discussed in https://github.com/loupe-php/loupe/discussions/66

Originally posted by **AndiLeni** January 26, 2024 Hello, I have some issues with the highlighting of search results. In my result, nothing gets highlighted, even though the search query definitely is in the content. This is a minimum woking example which does not work on my end: ``` withFilterableAttributes(['type']); $loupeFactory = new LoupeFactory(); $loupe = $loupeFactory->create('./', $configuration); $loupe->addDocument([ 'id' => "http://redaxo.test/personen/pythagoras", 'type' => "article", 'title' => "Pythagoras", 'content' => "Der Titel dieses Artikels ist mehrdeutig. Weitere Bedeutungen sind unter Pythagoras (Begriffskl\u00e4rung) aufgef\u00fchrt. Herme des Pythagoras (um 120 n. Chr.); Kapitolinische Museen, RomPythagoras von Samos (griechisch \u03a0\u03c5\u03b8\u03b1\u03b3\u03cc\u03c1\u03b1\u03c2 .mw-parser-output .Latn{font-family:\"Akzidenz Grotesk\",\"Arial\",\"Avant Garde Gothic\",\"Calibri\",\"Futura\",\"Geneva\",\"Gill Sans\",\"Helvetica\",\"Lucida Grande\",\"Lucida Sans Unicode\",\"Lucida Grande\",\"Stone Sans\",\"Tahoma\",\"Trebuchet\",\"Univers\",\"Verdana\"}Pythag\u00f3ras; * um 570 v. Chr. auf Samos; \u2020 nach 510 v. Chr. in Metapont in der Basilicata) war ein antiker griechischer Philosoph (Vorsokratiker), Mathematiker und Gr\u00fcnder einer einflussreichen religi\u00f6s-philosophischen Bewegung. Als Vierzigj\u00e4hriger verlie\u00df er seine griechische Heimat und wanderte nach S\u00fcditalien aus. Dort gr\u00fcndete er eine Schule und bet\u00e4tigte sich auch politisch. Trotz intensiver Bem\u00fchungen der Forschung geh\u00f6rt er noch heute zu den r\u00e4tselhaftesten Pers\u00f6nlichkeiten der Antike. Manche Historiker z\u00e4hlen ihn zu den Pionieren der beginnenden griechischen Philosophie, Mathematik und Naturwissenschaft, andere meinen, er sei vorwiegend oder ausschlie\u00dflich ein Verk\u00fcnder religi\u00f6ser Lehren gewesen. M\u00f6glicherweise konnte er diese Bereiche verbinden. Die nach ihm benannten Pythagoreer blieben auch nach seinem Tod kulturgeschichtlich bedeutsam.Inhaltsverzeichnis1 Leben2 Lehre2.1 Forschungsmeinungen2.2 Mathematik2.3 Musik2.4 Astronomie2.5 Politik und Gesellschaft2.6 Religion und Seelenlehre2.7 Sch\u00fclergemeinschaft3 Ikonographie4 Rezeption4.1 Antike4.2 Mittelalter4.3 Neuzeit5 Siehe auch6 Ausgaben und \u00dcbersetzungen von Quellen7 Literatur8 Weblinks9 AnmerkungenLebenMangels verl\u00e4sslicher Quellen, der schon fr\u00fch wuchernden Legendenbildung und Widerspr\u00fcchen zwischen den \u00fcberlieferten Berichten sind viele Angaben \u00fcber das Leben des Pythagoras in der wissenschaftlichen Literatur umstritten. Der aktuelle Forschungsstand ergibt folgendes Bild: Pythagoras wurde wohl um 570 v. Chr.[1] als Sohn des Mnesarchos geboren, der auf der Insel Samos lebte. Mnesarchos stammte wahrscheinlich nicht (wie behauptet wurde) aus einer vornehmen samischen Familie, sondern war ein eingewanderter erfolgreicher Kaufmann (nach anderer \u00dcberlieferung Steinschneider).[2] Als Lehrer des Pythagoras wird am h\u00e4ufigsten der Philosoph Pherekydes von Syros genannt.[3] In seiner Jugend soll sich Pythagoras zu Studienzwecken in \u00c4gypten und Babylonien aufgehalten haben; nach verschiedenen Berichten machte er sich mit dortigen religi\u00f6sen Anschauungen und naturwissenschaftlichen Kenntnissen vertraut und kehrte dann nach Samos zur\u00fcck.[4] Dort hatte um 538 v. Chr. Polykrates zusammen mit seinen Br\u00fcdern die Macht an sich gerissen und sp\u00e4ter seine Alleinherrschaft etabliert. Pythagoras stand in Opposition zu diesem Tyrannen und verlie\u00df die Insel. Nach der Datierung des Chronisten Apollodor reiste er 532\/531 v. Chr. ab.[5]Fr\u00fchestens 532 v. Chr., sp\u00e4testens 529 v. Chr. tauchte Pythagoras im griechisch besiedelten Unteritalien auf und gr\u00fcndete eine Schule in Kroton (heute Crotone in Kalabrien).[6] Deren Mitglieder (d. h. der innere Kreis) bildeten eine enge Gemeinschaft, legten sich auf eine disziplinierte, bescheidene Lebensweise fest (\u201epythagoreische Art des Lebens\u201c) und verpflichteten sich zur Treue gegeneinander. Pythagoras, der ein vorz\u00fcglicher Redner war, erlangte gro\u00dfen Einfluss auf die B\u00fcrgerschaft, den er auch politisch geltend machte. Er gewann auch in anderen Gegenden der Region Anh\u00e4nger, sogar unter der nichtgriechischen Bev\u00f6lkerung.[7] Im Konflikt Krotons mit der Stadt Sybaris, der anscheinend von den Sybariten provoziert wurde, trat er f\u00fcr eine feste Haltung ein. Weil Kroton sich auf Veranlassung des Pythagoras weigerte, gefl\u00fcchtete sybaritische Oppositionelle auszuliefern, brach 510 v. Chr. der Krieg aus, der mit der Zerst\u00f6rung von Sybaris endete.[8]Nach dem Sieg kam es in Kroton zu inneren Spannungen, unter anderem wegen der Verteilung des eroberten Landes; der Unmut der B\u00fcrger richtete sich gegen die Pythagoreer. Daraufhin \u00fcbersiedelte Pythagoras nach Metapontion (heute Metaponto in der Basilikata), wo er den Rest seines Lebens verbrachte. E", ]); $searchParameters = SearchParameters::create() ->withShowRankingScore(true) ->withAttributesToHighlight(["title", "content"]) ->withQuery("pythagoras"); $results = $loupe->search($searchParameters); print_r($results->toArray()); ``` I would expect to have all "pythagoras" words highlighted. Or do I have a misunderstanding on how this feature works? Thanks and kind regards
Toflar commented 8 months ago

Fixed in https://github.com/loupe-php/loupe/commit/eb622778cc326854adb5fb6d510a4c6bca8dd7ad.