검색 용 ElasticSearch Java API를 사용하고 있습니다. 나는 네 개의 필드가 있습니다검색 할 때 Elasticsearch에서 한 필드 제외
- 키
- 이름
- DOB를
- 주소
나는 다음과 같은 쿼리를 사용하고 검색하는 동안 "(
QueryBuilder QB = QueryBuilders.queryString을 피츠버그 ");
검색 중에는 키가 포함됩니다.
.fields ("DOB", "이름", "주소")
필드를 제외 할 수있는 방법이 있나요 : 또한, 나는 같은 fileds을 선택하고 싶지 않아? 나는 ParitalFields를 찾고 있었다. 내 사건에 유용 할까? 어떤 사람이 이것을 위해 자바 예제를 제공 할 수 있습니까?
/***************************** 만들기 다음과 같이
지금, 나는 매핑을 추가 한 인덱스 ******************************/
XContentBuilder mapping = jsonBuilder()
.startObject()
.startObject(indexName)
.startObject("properties")
.startObject("key")
.field("type", "string")
.field("index","not_analyzed")
.field("store", "false")
.endObject()
.startObject("addr1")
.field("type","string")
.endObject()
.startObject("DOB")
.field("type","string")
.endObject()
.startObject("name")
.field("type","string")
.endObject()
.endObject()
.endObject()
.endObject();
client.admin()
.indices()
.preparePutMapping(indexName)
.setType(indexName)
.setSource(mapping)
.execute()
.actionGet();
/******* ************** 데이터 삽입 ***************************/
XContentBuilder x = jsonBuilder()
.startObject()
.field("key", key)
.field("addr1", "abc road")
.field("DOB", "09092009")
.field("name","test")
.endObject();
bulk.add(client.prepareIndex(indexName, indexName).setSource(x));
/************* 검색 쿼리 **********************/
나는 인덱스 메타 데이터를 볼 때 다음과 같이, 그것은 나에게 적절한지도를 보여주고있다QueryBuilder qb =QueryBuilders.queryString("*e434*");
SearchResponse response = client.prepareSearch(indexName)
.setQuery(qb)
.setFrom(0)
.setSize(100)
.execute()
.actionGet();
SearchHit[] results = response.getHits().hits();
: 나는 검색 쿼리를 수행 할 때
mappings: {
indexName: {
properties: {
addr1: {
type: string
}
name: {
type: string
}
key: {
index: not_analyzed
type: string
}
acct_type: {
type: string
}
}
}
}
하는 지금, 여전히 나에게 키에 대한 검색 결과를 보이고있다.
나는 무엇이 잘못 될지 잘 모르겠다. 아무도이 문제를 해결할 수 있도록 도울 수 있습니까?
검색중인 필드 또는 반환되는 필드를 제어 하시겠습니까? – javanna
호기심에서 벗어나 네 번째 필드를 반환 하시겠습니까? 성능입니까? 다른 이유? –
검색하는 동안 입력란을 제어하고 싶습니다. 돌아 오는 동안 나는 어떤 분야도 통제하지 않는다. 지금, 내 열쇠는 임의의 UUID입니다. 그리고 abc 또는 123을 검색하면 주소와 키를 검색하여 불필요한 결과를 얻습니다. –