Fehlende Search API Datenbank-Tabellen - Warum?
am 14.10.2016 - 11:02 Uhr in
Hallo,
in meiner Drupal Installation ist mir etwas merkwürdiges aufgefallen, und zwar fehlen einige search_api Tabellen in der Datenbank.
Kurzfassung:
Ich habe den "Default Node Index" namentlich so belassen und habe ihm sowohl einen Server als auch mehrere Felder, darunter vor allem Taxonomien zugeordnet. Normalerweise wird für jede Taxonomie bzw. eigtl. auch für jedes Feld eine search_api Tabelle angelegt (z.B. "search_api_db_default_node_index_field_beispieltaxonomie_name") - wenn das betreffende Feld oder die Taxonomie indexiert werden, was in meinem Fall zutrifft.
Was mich stutzig macht ist, dass ich auch Facets mit einigen Taxonomien erstellt habe, die nicht als Datenbanktabelle auftauchen. Diese Facets funktionieren aber tadellos. Auch wenn ich eine View aufbaue mit dem Such-Index "Default Node Index", kann ich diese Taxonomien auswählen. Also müssten sie doch in der Datenbank bekannt sein?
Ich habe den Index auch schon sehr häufig re-indexiert, in der Hoffnung dass das die Lösung bringen würde. Tat es aber nicht.
Details:
- Wie gesagt, habe ich dem Standard-Index einen Server zugeordnet (Database Service), beide sind natürlich aktiv.
- Unter "Fields" habe ich Taxonomiename: Begriff-ID (Typ: Ganzzahl), Taxonomiename: Name (Typ: Zeichenkette), Taxonomiename: Anzahl der Beiträge (Typ: Ganzzahl) indexiert. Zuvor habe ich die betreffenden Taxonomien als "related field" hinzugefügt.
- Unter "Filters" habe ich alles so belassen, wie es ab Werk eingestellt war.
- Unter "Facets" habe ich jeweils Taxonomiename: Name aktiviert. Diese funktionieren, wie bereits erwähnt alle ausnahmslos ohne Einschränkungen. Sie werden auch alle in der Datenbank-Tabelle "facetapi" aufgeführt.
- Einige Taxonomien haben eine passende Datenbank-Tabelle, z.B.: "search_api_db_default_node_index_field_beispieltaxonomie_name" oder "search_api_db_default_node_index_field_beispieltaxonomie_node_count" oder "search_api_db_default_node_index_field_beispieltaxonomie_tid"
- Einige andere Taxonomien haben gar keine entsprechende Search API Datenbank-Tabelle. Die Einstellungen sind aber jeweils identisch.
- Auch einige "normale Felder" haben gar keine entsprechende Search API Datenbank-Tabelle. Diese müssten doch dort auch auftauchen, oder nicht?
Modul & Drupal Versionen
- Drupal: 7.50
- search_api: 1.20
- search_api_db: 1.5
- facetapi_search: 1.1
- search_api_facetapi: 1.20
- search_api_sorts: 1.6
- search_api_views: 1.20
- ds_search: 2.14
Jetzt die Gretchenfrage:
Wieso fehlen einige Search API Datenbank-Tabellen?
Das verstehe ich überhaupt nicht.
Was mache ich falsch?
Vielen Dank für Eure Hilfe.
- Anmelden oder Registrieren um Kommentare zu schreiben
Hallo, Du machst nichts
am 14.10.2016 - 17:49 Uhr
Hallo,
Du machst nichts falsch, es funktioniert doch wie Du schreibst.
Ich gehe mal davon aus dass Du einen SOLR Server einsetzt, um
die Nodes zu indexieren.
Ich habe den "Default Node Index" namentlich so belassen und habe ihm sowohl einen Server als auch mehrere Felder, darunter vor allem Taxonomien zugeordnet.
Ein SOLR Server ist ein Index Server und kein Datenbank Server.
Der SOLR Server hat keine Datenbank.
Die Daten werden in Memory Mapped Files indexiert.
Daher ist das VIEL schneller als eine Datenbanksuche.
Gruss
Robert
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Hallo Robert, vielen dank für
am 17.10.2016 - 13:57 Uhr
Hallo Robert,
vielen dank für deine Antwort.
Nein, ich setze keinen SOLR Server ein. Sondern, wie ich auch schrieb einen DB Server.
Ich weiß natürlich dass es viele Vorteile mit SOLR gibt. Ich setze es aber nicht ein, da es mitunter recht teuer werden kann - ja nach Hoster.
In meinem Fall ziemlich teuer.
Aber trotzdem vielen Dank für den Hinweis.
Hmm,Du benutzt den gleichen
am 17.10.2016 - 15:43 Uhr
Hmm,
Du benutzt den gleichen Server und die gleiche Datenbank für die Indexierung ?
Wie gesagt, habe ich dem Standard-Index einen Server zugeordnet (Database Service), beide sind natürlich aktiv.
Database Service, was ist das oder soll das sein ? MySQL,MongoDB,Postgres,Oracle?
Für mich ist es jedenfalls seltsam eine zweite Datenbank für einen Suchindex aufzusetzen.
Wenn das bei Dir so ist ist der Index natürlich in der Datenbank, für welche dieser Service
zuständig ist!
Gruss
Robert
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Japp. Gleiche Datenbank,
am 17.10.2016 - 15:41 Uhr
Japp. Gleiche Datenbank, gleicher Server. Ist alles Drupal Intern - kein externes Modul wie SOLR oder so.
Hyp1 schrieb Hmm, Du benutzt
am 17.10.2016 - 15:44 Uhr
Hmm,
Du benutzt den gleichen Server und die gleiche Datenbank für die Indexierung ?
Wie gesagt, habe ich dem Standard-Index einen Server zugeordnet (Database Service), beide sind natürlich aktiv.
Database Service, was ist das oder soll das sein ? MySQL,MongoDB,Postgres,Oracle?
Für mich ist es jedenfalls seltsam eine zweite Datenbank für einen Suchindex aufzusetzen.
Gruss
Robert
Entschuldige, ich meinte damit das Modul Database Service, das man zur Search API hinzuladen muss. Das ist, wie ich das verstanden habe, so eine Art Standardeinstellung wenn man eben kein externes System wie SOLR benutzt sondern nur seine Drupal DB zur Verfügung hat.
Die DB läuft mit MySQL 5.6.
Ah, jetzt verstehe ich. Fehlt
am 17.10.2016 - 17:31 Uhr
Ah,
jetzt verstehe ich.
Fehlt dann da oben nicht das drealty Modul ?
Wenn ja schau mal im Modul in drealty.install
Dort findest die Tabellen, die installiert werden.
Gruss
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Öhm, glaube das brauche ich
am 18.10.2016 - 08:20 Uhr
Öhm, glaube das brauche ich nicht. Ich setze kein RETS ein...
Also ich setze überhaupt keine externen Frameworks ein - nur Drupal. Ok, und jQuery. Aber ich glaube das zählt nicht.
Aber du scheinst dich wirklich gut auszukennen mit Datenbanken und Drupal, vielleicht kannst du mir auch bei einem anderen Problem helfen? http://www.drupalcenter.de/node/55789
Hi, Du benötigst vermutlich
am 19.10.2016 - 12:39 Uhr
Hi,
Du benötigst vermutlich auch das ds_search modul nicht,
da du ja in die gleiche Datenbank indexierst.
Wie gesagt, ein index Server indexiert cleverer und anders als es in einem DB Server
der Fall ist.
z.B:
Datenbank Server Tabelle(2 Zeilen):
Ich habe ein Haus
Ich habe ein Auto
Index Server Index(alphabetisch):
Auto
ein
habe
Haus
Ich
Egal wieviel Text oder wie gross die DB ist im Indexserver kommt jedes Wort nur 1x vor!
Zum anderen Problem Antworte ich Dir in Deinem Thread
Gruss
Robert
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)