Zoeken…


Opmerkingen

Analyzers halen de tekst uit een stringveld en genereren tokens die zullen worden gebruikt bij het opvragen.

Een analysator werkt in een volgorde:

  • CharFilters (nul of meer)
  • Tokenizer (één)
  • TokenFilters (nul of meer)

De analysator kan op toewijzingen worden toegepast, zodat wanneer velden worden geïndexeerd, dit per token gebeurt en niet per string als geheel. Bij het opvragen wordt de invoertekenreeks ook via de Analyzer uitgevoerd. Daarom, als u tekst in de Analyzer normaliseert, zal deze altijd overeenkomen, zelfs als de query een niet-genormaliseerde string bevat.

In kaart brengen

Een analysator kan op een afbeelding worden toegepast met behulp van "analysator", standaard wordt de "standaard" analysator gebruikt. Als u niet wilt dat een analysator wordt gebruikt (omdat tokeniseren of normaliseren niet nuttig zou zijn), kunt u "index" opgeven: "not_analyzed"

PUT my_index 
{
  "mappings": {
    "user": {
      "properties": {
        "name": {
          "type": "string"
          "analyzer":  "my_user_name_analyzer"
        },
        "id": {
          "type": "string",
          "index": "not_analyzed"
        }
      }
    }
  }
}

Multi-velden

Soms is het misschien handig om meerdere verschillende indexen van een veld met verschillende Analyzers te hebben. U kunt hiervoor de mogelijkheid voor meerdere velden gebruiken.

PUT my_index 
{
  "mappings": {
    "user": {
      "properties": {
        "name": {
          "type": "string"
          "analyzer": "standard",
          "fields": {
            "special": {
               "type": "string",
               "analyzer": "my_user_name_analyzer"
            },
            "unanalyzed": {
              "type": "string",
              "index": "not_analyzed"
            }
          }
        }
      }
    }
  }
}

Wanneer u een zoekopdracht uitvoert, kunt u in plaats van eenvoudigweg "user.name" (die in dit geval nog steeds de standaardanalysator gebruikt) "user.name.special" of "user.name.unanalyzed" gebruiken. Merk op dat het document ongewijzigd blijft, dit heeft alleen invloed op de indexering.

Analyzers

Analyse in elastisch zoeken komt in context wanneer u bereid bent de gegevens in uw index te analyseren.

Met analyzers kunnen we het volgende uitvoeren:

  • afkortingen
  • Stemming
  • Typefouten

We zullen ze nu elk bekijken.

  1. Afkortingen :

    Met behulp van analyseapparatuur kunnen we ElasticSearch vertellen hoe afkortingen in onze gegevens moeten worden behandeld, bijv. Dr => Doctor, dus wanneer we zoeken naar een artsenwoord in onze index, geeft ElasticSearch ook de resultaten terug die door Dr. zijn vermeld.

  1. Stemming :

    Met behulp van stemming in analysatoren kunnen we basiswoorden gebruiken voor aangepaste werkwoorden zoals

    Woord wijzigingen
    vereisen eis, de gewenste
  1. Typografische verwerking :

    Analyzers bieden ook typefuncties, terwijl we tijdens het zoeken naar een bepaald woord als 'opstanding' zoeken, dan zal elastischesearch de resultaten retourneren waarin typefouten aanwezig zijn.

    Woord wijzigingen
    verrijzenis resurection, verrijzenis

Analyzers in Elasticsearch

  1. Standaard

  2. Gemakkelijk

  3. Witte ruimte

  4. Hou op

  5. keyword

  6. Patroon

  7. Taal

  8. Sneeuwbal

Negeer casusanalysator

Soms moeten we het geval van onze zoekopdracht negeren met betrekking tot de overeenkomst in het document. In dit geval kan een analysator worden gebruikt om de zaak tijdens het zoeken te negeren. Elk veld moet deze analysator in zijn eigenschap bevatten om te werken:

"settings": {
        "analysis": {
            "analyzer": {
                "case_insensitive": {
               "tokenizer": "keyword",
               "filter": ["lowercase"]
            }
            }
        }
    }


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow