2016-02-04 5 views
0

У меня есть много документов, которые я хочу сделать их доступными для поиска у ElasticSearch. Эти документы вписываются в несколько категорий.Документ ElasticSearch с несколькими категориями

В чем смысл?

  • Поиск всех документов При доступе к категории, соответствующей образцу.
  • Управление собственным списком соответствующих документов.
  • Может ли EleasticSearch создать список?

Полнотекстовый поиск в документах определенных категорий также должен быть возможен.

Образец данных:

{ 
    fulltext: "This is a Invoice from Project TestProject...", 
    id: 1235456 
} 

Примеры Категории:

[{ 
    name: "invoices", 
    filter: { 
     match: "invocie" 
    } 
}, 
{ 
    name: "testproject files", 
    filter: { 
     match: "testproject" 
    } 
}] 

приветствует Philipp

+0

Можете ли вы дать образец данные, о которых вы думаете? Категория выглядит как тег, каждый индекс эластичности - это список, но каждый документ может также содержать список других предметов. Поэтому есть много ответов, но, чтобы дать правильный ответ, нам нужно немного больше информации. –

+0

Я добавляю образцы данных. – Philipp

ответ

1

Просто добавьте поле строкового типа документа и сохранить категорию для каждого документа там. Затем вы можете фильтровать в этом поле поисковые запросы для ограничения совпадений с определенными категориями.

Что-то вроде этого для документа:

{ 
     "fulltext": "This is a Invoice from Project TestProject...", 
     "category": "Invoice" 
    } 

И искать документ с текстом «TestProject» в категории «счета-фактуры»:

GET /_search 
    { "query": 
    { 
     "filtered": { 
      "query": { "match": { "fulltext": "testproject" }}, 
      "filter": { "term": { "category": "invoice" }} 
     } 
    }} 
+0

Насколько эффективнее, чем список всех документов в этой категории? – Philipp

+0

Что вы подразумеваете под «списком всех документов в этой категории»? – sean

+0

классический индексный стол. – Philipp

Смежные вопросы