spring-data -asticsearch-2.0.4.RELEASE запускается без работы с неанализированным полем - PullRequest
0 голосов
/ 05 ноября 2018

Я использую ElasticserachRepoistory, и следующий запрос не работает с не проанализированной строкой: findByNameStartingWithIgnoreCase (String name);

Если я проанализирую поле, оно будет работать с каждым словом в строке вместо начала фразы.

Какой самый простой способ достичь этого с не анализируемой областью? Мне нужно для автозаполнения

1 Ответ

0 голосов
/ 06 ноября 2018

Я сделал собственный анализатор, и он заработал:

@Document(indexName = "db", type = "user")
@Getter
@Setter
@Setting(settingPath = "/settings.json")
public class User{


    @org.springframework.data.annotation.Id
    private Long id;

    @Field(analyzer= "autocomplete",type = FieldType.String )
    private String name;

    }

файл json:

   { 
"index": {
"number_of_shards": 1,
"analysis": {
  "filter": {
    "autocomplete_filter": {
      "type": "edge_ngram",
      "min_gram": 1,
      "max_gram": 20
    }
  },
  "analyzer": {
    "autocomplete": {
      "type": "custom",
      "tokenizer": "keyword",
      "filter": [
        "lowercase",
        "autocomplete_filter"
      ]
     }
    }
   } 
  }
}
...