2015-05-05 2 views
0

Я внедряю фильтр-фильтр для поиска, используя API-интерфейс для поиска.эластичный поисковый фильтр-фильтр

Я столкнулся с проблемой, как я могу сделать базу поиска только в prefix search, но я не могу сделать со средним словом.

Я попытался ниже пример:

PUT/bls { 
    "mappings": { 
    "bl": { 
     "properties": { 
     "name": { 
      "type": "string", 
      "index": "not_analyzed" 
     }, 
     "name_suggest": { 
      "type": "completion", 
      "context": { 
      "store": { 
       "type": "category" 
      }, 
      "status": { 
       "type": "category" 
      } 
      } 
     } 
     } 
    } 
    } 
} 

и

POST/bls/bl/1 { 
    "name": "LG 32LN5110 32 inches LED TV", 
    "name_suggest": { 
    "input": ["sony 32LN5110 32 inches LED TV"], 
    "context": { 
     "store": [ 
     44, 
     45 
     ], 
     "status": "Active" 
    } 
    } 
} 

POST/bls/_suggest ? pretty { 
    "name_suggest": { 
    "text": "sony", 
    "completion": { 
     "field": "name_suggest", 
     "context": { 
     "store": "44", 
     "status": "Active" 
     } 
    } 
    } 
} 

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

POST/bls/_suggest ? pretty { 
    "name_suggest": { 
    "text": "LED", 
    "completion": { 
     "field": "name_suggest", 
     "context": { 
     "store": "44", 
     "status": "Active" 
     } 
    } 
    } 
} 

и это выше результаты запроса отображаются ниже:

{ 
    "_shards": { 
    "total": 5, 
    "successful": 5, 
    "failed": 0 
    }, 
    "name_suggest": [{ 
    "text": "LED", 
    "offset": 0, 
    "length": 3, 
    "options": [] 
    }] 
} 

ответ

0

Тип String индексируется по умолчанию. Поэтому даже без указания типа они индексируются с помощью анализатора по умолчанию, если не указан конкретный анализатор.

В вашем случае, вы должны указать

index: analyzed для name_suggest собственности

Такое, что используется Anayzer содержащий пробельные анализатор, который будет разметить все слова в вашем поле ввода. И, следовательно, можно искать в любом месте текста.

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