2009-08-19 4 views
0

ändern Nehmen wir an, ich einen Index wie unteneinen Begriff in lucene

 
    name | species | color 
    -----+---------+------ 
    max | cat  | grey 
    sam | dog  | brown 
    luy | cat  | white 
    ... | ...  | ... 
    ... | ...  | ... 
    poe | dog  | blond 
    joe | cat  | red 
    pam | dog  | brown 

Die Art und Farbfelder sind Token versehen, indiziert und gespeichert strukturiert haben.

Nehmen wir jetzt an, ich möchte den Begriff Katze zu Katze und Hund zu Hund ändern.

Von dem, was ich gelesen habe, müsste ich jedes Dokument (Zeile) löschen und neu mit dem neuen Begriff hinzufügen. Da die ursprünglichen Begriffe "Katze" und "Hund" indexiert, "Tokenisiert" und "Gespeichert" sind, scheint es eine Möglichkeit zu geben, nur die Begriffe Katze und Hund zu ihren neuen Titeln zu aktualisieren.

Gibt es schon einen Weg, dies zu tun? Habe ich es gerade vermisst?

+0

Lucene .net oder Java? Bitte etikettieren Sie entsprechend. – skaffman

Antwort

0

Ich bezweifle stark, dass Feldwerte geändert werden können, ohne die Dokumente erneut hinzuzufügen. Auf der Grundlage Ihres hypothetischen Szenarios können Sie jedoch unter searching for synonyms nach den Suchbegriffen suchen. Beispielsweise könnten Sie "cat" und "dog" im Index belassen, aber die Abfragen der Benutzer erweitern, um auch nach "feline" bzw. "canine" zu suchen.

"cat" wird "cat" AND "feline"

"dog""dog" AND "canine"

Diese Funktionalität für Ihre Nutzer können kommen als Freude wird, wenn sie nicht wissen, welche sind Begriffe, die Sie im Index ausgewählt haben.