2016-08-17 3 views
0

Ниже приведены данные моего БД.Elasticsearch предлагать проверку состояния

{ 
"_id" : ObjectId("572c957244ae959c6517bcb2"), 
"name":"first", 
"rating" : 2.0, 
"private" : "true" 
} 
{ 
"_id" : ObjectId("572c957244ss959c6517bcb2"), 
"name":"first", 
"rating" : 2.0, 
"private" : "false" 
} 
{ 
"_id" : ObjectId("572c9dfef44ae959c6517bcb2"), 
"name":"first", 
"rating" : 2.0, 
"private" : "false" 
} 
{ 
"_id" : ObjectId("572c9dfef44ae959c6517bcb2"), 
"name":"first", 
"rating" : 2.0, 
} 

Мне нужно, кроме "частный": "истина" (т.е. включая JSon объекта без частной поданной), в моем elasticsearch .my elasticsearch запроса для выборки выглядит следующим образом

curl -XGET 'localhost:9200/tellofy/_suggest?pretty' -d ' 
{"brand-suggest": {"completion":"field":"nameSuggest","size":"5"}, "text":"first"}}' 

Что мне нужно, чтобы получить имя вместе с частным «ложным» и без этого поля.

ответ

1

Может быть, вы могли бы попробовать это:

curl -XGET 'localhost:9200/tellofy/_suggest?pretty' -d ' 
{ 
    "brand-suggest": { 
     "completion": { 
     "field": "nameSuggest", 
     "size": "5", 
     "context": { 
      "private": "false" 
     } 
     }, 
     "text": "first" 
    } 
}' 

Я думаю, вы также должны установить значение по умолчанию «ложь» для частного поля в отображении:

curl -X PUT "http://localhost:9200/tellofy/test/_mapping" -d' 
{ 
    "test": { 
     "properties": { 
     "name": { 
      "type": "string" 
     }, 
     "rating": { 
      "type": "float" 
     }, 
     "private": { 
      "type": "boolean" 
     }, 
     "nameSuggest": { 
      "type": "completion", 
      "context": { 
       "private": { 
        "type": "category", 
        "path": "private", 
        "default": false 
       } 
      } 
     } 
     } 
    } 
}' 

Haven Однако я использовал контекстные предложения в elasticsearch. См. Elasticsearch Context Suggester documentation для получения дополнительной информации.

Смотрите также вопрос: Elasticsearch context suggester, bool on contexts

+0

Привет Неман, я пытался над ней бросками следующие ошибки, когда я поставил _suggest InstEd из _search в URL «вложенная: ElasticsearchIllegalArgumentException [Suggester [завершение] не ожидает каких-либо контекста];» , Если я поставил _search, когда вы отправили следующую ошибку, возникает ошибка: «SearchPhaseExecutionException [Не удалось выполнить фазу [запрос], все осколки не сработали; ..... – venkat

+0

Есть ли какие-либо решения для моей описанной выше ошибки описания. – venkat

+0

Какую версию elasticsearch вы используете? – Neman