나는 2 개의 문서에서:
curl -XPUT "http://localhost:9200/vehicles/vehicle/1" -d'
{
"model": "Classe A"
}'
curl -XPUT "http://localhost:9200/vehicles/vehicle/2" -d'
{
"model": "Classe B"
}'
왜 이 쿼리를 반환합니다 2documents:
curl -XPOST "http://localhost:9200/vehicles/_search" -d'
{
"query": {
"query_string": {
"query": "model:\"Classe A\""
}
}
}'
와 이 중 하나,단지 두 번째 문서
curl -XPOST "http://localhost:9200/vehicles/_search" -d'
{
"query": {
"query_string": {
"query": "model:\"Classe B\""
}
}
}'
내가 원하는 탄력 있는 검색에 맞에 정확한 구문을 통과하는 쿼리를 매개 변수와 공백,렇게 하려면 어떻게 해야 합니까?
당신이 볼 필요가 있는해석기당신이'다시 사용합니다. 지 않는 경우't 중 하나를 지정동 방법을 사용하는 것표준 해석기. 그것은 훌륭한 대부분의 경우 일반 텍스트 입력,그러나지 않는't 작업에 대한 사용이 경우에 당신이 언급한다.
표준 해석기 할 것입니다 분할 단어에서 당신의 문자열로 변환들을 소문자입니다.
하려는 경우 경기체 문자열"Classe A"그리고 구분이"세 B"사용할 수 있습니다키워드 분석기. 이 전체 필드 중 하나로 문자열입니다.
다음을 사용할 수 있는 경기를 쿼리하는 것이 결과를 반환할 수 있습니다.
매핑을 만듭:
PUT vehicles
{
"mappings": {
"vehicle": {
"properties": {
"model": {
"type": "string",
"analyzer": "keyword"
}
}
}
}
}
쿼리를 수행:
POST vehicles/_search
{
"query": {
"match": {
"model": "Classe A"
}
}
}
당신이 사용하고 싶었query_string
쿼리할 수 있는 다음 설정하자그리고
POST vehicles/vehicle/_search
{
"query": {
"query_string": {
"query": "Classe B",
"default_operator": "AND"
}
}
}