Elasticsearch - поиск предметов по группе - PullRequest
0 голосов
/ 16 октября 2018

Я хотел бы найти элементы внутри «виртуального раздела», где элементы разделены или принадлежат идентификатору группы,

Например: в моей системе несколько организаций, у каждой организации есть свои продукты (активы), я хотел бы разрешить каждому члену организации искать продукты в своей организации, результаты поиска включают только элементы, принадлежащие его организации, но не принадлежащие другим организациям ...

Что-то вроде: SELECT * FROM assets WHERE org_id = 'GUID' AND (name LIKE '%QUERY%' OR category LIKE '%QUERY%'OR tag LIKE '%QUERY%')

вот настройка индекса:

PUT assets {
  "settings": {
    "analysis": {
       "filter": {
          "nGram_filter": {
          "type": "ngram",
          "min_gram": 2,
          "max_gram": 20,
          "token_chars": [
            "letter",
            "digit",
            "punctuation",
            "symbol"
          ]
        }
      },
      "analyzer": {
        "nGram_analyzer": {
          "type": "custom",
          "tokenizer": "whitespace",
          "filter": [
            "lowercase",
            "asciifolding",
            "nGram_filter"
          ]
        },
        "whitespace_analyzer": {
          "type": "custom",
          "tokenizer": "whitespace",
          "filter": [
            "lowercase",
            "asciifolding"
          ]
        }
      }
    }
  },
  "mappings": {
    "asset": {
      "properties": {
        "name": {
          "type": "text",
          "analyzer": "nGram_analyzer",
          "search_analyzer": "whitespace_analyzer"
        },
        "categories": {
          "type": "text",
          "analyzer": "nGram_analyzer",
          "search_analyzer": "whitespace_analyzer"
        },
        "genres": {
          "type": "text",
          "analyzer": "nGram_analyzer",
          "search_analyzer": "whitespace_analyzer"
        },
        "tags": {
          "type": "text",
          "analyzer": "nGram_analyzer",
          "search_analyzer": "whitespace_analyzer"
        }
      }
    }
  }
}

Я предполагаю, что настройки индекса для org_id не должны включать analysis или analyzer, потому что я хочу фильтровать по точному значению, но я делаюхотите установить индекс, похожий на индекс битовой карты, для создания некоторых подгрупп, скажем «виртуальный раздел», разделенных на org_id.

затем, как должен выглядеть org_id в сегменте mappings?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...