Incorrect grouping of search results between "Extensions" and "Other Matches"
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 45/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- javascript, php
Piste de recherche
Commencez dans js/search.js, au niveau de la logique de regroupement autour des lignes 130-141, puis comparez ses hypothèses fondées sur les éléments avec le PHP Manual SQLite index dump fourni et les exemples listés. Déterminez comment le type de résultat doit distinguer les pages d’extensions des pages générales du manuel, et vérifiez que les résultats Security, apcu, pdo et autres similaires apparaissent dans les bons groupes.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Background
In https://github.com/php/phd/pull/154, we resolved the issue of missing pages in the search index. However, now that these pages are visible in search results, a long-standing bug in result grouping has become apparent.
Issue
Some search results are incorrectly categorized between the "Extensions" and "Other Matches" groups.
Example:
Query: security
As shown:
- "Security (PHP Manual)" appears in the "Extensions" group, although it is not a PHP extension.
- "Security consideration" (from the
win32serviceextension) is incorrectly placed in the "Other Matches" group.
Cause
The client-side search code groups results based on types, including Function, Variable, Class, Exception, Extension, and Other Matches (general). These types are assigned according to the XML element tags in the manual's source.
Issue 1: Incorrect grouping in "Extensions"
The first issue occurs in this section of the code:
https://github.com/php/web-php/blob/27fbef13e912547b4086793a5dd2e04fc0fcf684/js/search.js#L130-L134
The code assumes that any entry with the element tag <book>, <set>, or <reference> is related to extensions, which is inaccurate. Many entries, though using these elements, do not belong to extensions.
Example data:
| id | ldesc | element |
|---|---|---|
| getting-started | Getting Started | book |
| install | Installation and Configuration | book |
| ... | ... | ... |
| reserved.variables | Predefined Variables | reference |
| wrappers | Supported Protocols and Wrappers | reference |
| ... | ... | ... |
SELECT "docbook_id", "ldesc", "element"
FROM "ids"
WHERE "element" IN ('book','set','reference')
Issue 2: Incorrect grouping in "Other Matches"
The second issue is due to an assumption in the following code:
https://github.com/php/web-php/blob/27fbef13e912547b4086793a5dd2e04fc0fcf684/js/search.js#L136-L141
The code assumes that entries with the tags <section>, <chapter>, <appendix>, or <article> do not belong to an extension. While this is not as bad, there are many pages that are part of an extension but are currently placed in the "Other Matches" group:
| id | ldesc | element |
|---|---|---|
| ... | ... | ... |
| apcu.installation | Installation | section |
| apcu.configuration | Runtime Configuration | section |
| ... | ... | ... |
| pdo.setup | Installing/Configuring | chapter |
| pdo.constants | Predefined Constants | appendix |
| pdo.connections | Connections and Connection management | chapter |
| ... | ... | ... |
SELECT "docbook_id", "ldesc", "element"
FROM "ids"
WHERE "element" IN ('section','chapter','appendix','article')
PHP Manual index dump
For convenience, here is the dump from the PHD SQLite index for the PHP Manual: php-manual-index_2024-10-08.sql.gz
Notes
- This will continue to be relevant even after #1084 is merged, as it uses the same logic for displaying the result type.
- The screenshot has the upcoming fix for https://github.com/php/phd/issues/159 applied.
- Langage dominant
- PHP
- Étoiles
- 1.1k
- Forks
- 641
- Merge moyen
- 1 j 8 h
- PR mergées (30 j)
- 15
Préparer son environnement
Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de php/web-php
-
Bug Status: Needs Triage
Difficulté 3/5 1-2 jours Accessibilité débutants 65/100
Les mainteneurs répondent en général sous 1 jour
-
Page: downloads
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
php/web-php#1946 · 2 réactions ·
Les mainteneurs répondent en général sous 1 jour
-
Page: downloads
Difficulté 3/5 1-2 jours Accessibilité débutants 62/100
Les mainteneurs répondent en général sous 1 jour
-
Bug Status: Needs Triage
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
php/web-php#1906 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Bug Status: Needs Triage
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
php/web-php#1905 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de php/web-php
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 60/100
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
scanaislop/aislop#476 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
components-web-app/api-components-bundle#403 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
mollie/PrestaShop#1566 ·
Les mainteneurs répondent en général sous 1 jour