Anmelden
Ich möchte für die nächsten 30 Tagen angemeldet bleiben
Deutsch
Several pages in the usergroup are available in English. Click on english to visit these pages.
Druckerfreundlich DNN 9.x - ModuleSearchBase und GetModifiedSearchDocuments indexiert nur Daten eines Moduls von Portal 1 (Portal 0 wird ignoriert)
Sortieren:
Vorheriger BeitragVorheriger Beitrag Nächster BeitragNächster Beitrag
Sie sind nicht autorisiert, um eine Antwort zu erstellen.
Autor Nachrichten
Martin SigristBenutzer ist Offline
Beiträge: 6
New Member


--
08 Jun 2018 19:54
Hallo zusammen

ich verwende in einem eigenen Modul die Suche von DNN. Das Modul kommt 1x auf Portal 0 und 1x auf Portal 1 vor. Leider indexiert der Search Indexer nur die Daten des Moduls von Portal 1. Das Modul auf Portal 0 wird komplett ignoriert.

Die Methode sieht folgendermassen aus:

------------------------------

public override IList GetModifiedSearchDocuments(ModuleInfo moduleInfo, DateTime beginDateUtc)
{
    try
    {
IList lst = (IList)ListProductsForLucene(moduleInfo.PortalID);
IList lstSearchDocuments = new List();

foreach (SearchResultLuceneInfo lstItem in lst)
{
    SearchDocument searchDoc = new SearchDocument
    {
IsActive = true,
CultureCode = moduleInfo.CultureCode,
TabId = moduleInfo.TabID,
UniqueKey = lstItem.ProductId.ToString(),
SearchTypeId = _moduleSearchTypeId,
ModifiedTimeUtc = lstItem.UpdatedOnDate.ToUniversalTime(),
AuthorUserId = moduleInfo.LastModifiedByUserID,
ModuleId = moduleInfo.ModuleID,
ModuleDefId = moduleInfo.ModuleDefID,
Title = lstItem.ProductName,
PortalId = moduleInfo.PortalID,
Description = "Artikel " + moduleInfo.ModuleTitle,
Body = lstItem.ProductId.ToString() + " " + lstItem.ShortDescription + " " + HelperClass.ProductTitleEnhancement(lstItem.ManufacturerName, lstItem.EAN, lstItem.Model + " - " + lstItem.ProductId.ToString(), lstItem.HerstellerArtikelNr),
QueryString = "Control=2&ProductId=" + lstItem.ProductId.ToString()
    };

    lstSearchDocuments.Add(searchDoc);
}

return lstSearchDocuments;
    }
    catch (Exception ex)
    {
Exceptions.ProcessSchedulerException(ex);
return null;
    }
}

------------------------------

Exception gibt es keine. Wenn ich debugge, springt der Debugger ohne Probleme in die Methode, jedoch wird als ModuleInfo immer das Modul von Portal 1 übergeben.

Kann mir evtl. jemand von euch weiterhelfen? Besten Dank.

Gruss, Martin
Michael TobischBenutzer ist Offline
Beiträge: 890
Advanced Member


--
11 Jun 2018 14:50
Martin,

ich denke, das Problem ist einfach gelöst - du spielst das ja nur für ein Portal durch. Du müsstest also irgendeine "foreach (PortalInfo p in Portals) ..." innerhalb des gesamten try-catch-Blocks laufen lassen, und mit den Ergebnissen die lstSearchDocuments füllen...

Gruß aus Innsbruck
Michael
Michael Tobisch
DNN★MVP
dnnWerk Austria dnn-Connect.org - The most vibrant community around the DNN-platform
Sebastian LeupoldBenutzer ist Offline
Beiträge: 7035
Senior Member


--
11 Jun 2018 15:05
Eigentlich sollte die Methode für jeden Modul aufgerufen werden, dass sich auf einer Seite befindet und das zu indizieren ist.
Hast Du die Moduleinstellungen überprüft und wird die Indizierung für diese Website überhaupt ausgeführt?
Grüße aus Karlsruhe,
Sebastian Leupold
dnnWerk Verbund
dnnWerk - die DotNetNuke-Experten Deutsche DotNetNuke Usergroup
Martin SigristBenutzer ist Offline
Beiträge: 6
New Member


--
11 Jun 2018 15:18
Hallo zusammen

habe das Problem gelöst. Die Page auf Portal 0, auf welcher das Modul drauf ist, hatte die Option 'Allow indexing' auf false. Vielen Dank trotzdem für eure Hilfe.

Gruss, Martin
Sebastian LeupoldBenutzer ist Offline
Beiträge: 7035
Senior Member


--
11 Jun 2018 15:27
prima, dass Du es gefunden hast. Irgendwie "roch" die Beschreibung nach so einem Fehler...
Grüße aus Karlsruhe,
Sebastian Leupold
dnnWerk Verbund
dnnWerk - die DotNetNuke-Experten Deutsche DotNetNuke Usergroup
Sie sind nicht autorisiert, um eine Antwort zu erstellen.

Active Forums 4.2