I want to increase the speed of search

I do not speak English, please understand

System Specifications
Number of nodes: 4
CPU model: Quad-Core AMD Opteron(tm) Processor 2347 HE (1900 MHz)
CPU total logical cores: 8
Memory : 8G * 4

Elasticsearch Settings
index.number_of_shards: 8
index.number_of_replicas: 1
node.master: true
node.data: true
bootstrap.mlockall: true
transport.tcp.compress: true
network.tcp.keep_alive: true
cluster.routing.allocation.node_initial_primaries_recoveries: 1
cluster.routing.allocation.node_concurrent_recoveries: 1
cluster.routing.allocation.cluster_concurrent_rebalance: 1
index.shard.recovery.concurrent_streams: 2
cluster.routing.allocation.disable_allocation: false
cluster.routing.allocation.disable_replica_allocation: false
discovery.zen.ping.timeout: 10s
discovery.zen.ping.multicast.enabled: false
index.cache.field.type: soft
index.term_index_interval: 64
index.refresh_interval: 30

Elasticsearch Start option
bin/elasticsearch -Xmx4G -Xms4G -Des.index.storage.type=memory

Documents Info
size: 49gb (98.2gb)
docs: 18214105 (18214590)

Search Condition

  1. Were routing to each user ID.
  2. Java Code
    FilterBuilder[] reporterFilters = null;
    FilterBuilder filters = null;

SearchRequestBuilder builder = client.prepareSearch(index);
builder.setFrom((Integer) params.get("searchFrom"));
builder.setSize((Integer) params.get("searchCnt"));
builder.setTypes(type);
builder.addSort((String) params.get("sortField"), (Boolean)
params.get("ascending") ? SortOrder.ASC : SortOrder.DESC);

//Set date range filter
if (params.get("fromDate") != null) {
filters =
FilterBuilders.rangeFilter("regDate").from(params.get("fromDate")).to(params.get("toDate"));
}

//Set category filter
if (params.get("categoryId") != null) {
filters =
FilterBuilders.andFilter(FilterBuilders.termFilter("categoryId",
params.get("categoryId")), filters);
}

//Set query filter
if (params.get("query") != null) {
builder.setQuery(QueryBuilders
.queryString((String) params.get("query"))
.field("title")
.field("summary")
.field("content")
.defaultOperator(QueryStringQueryBuilder.Operator.AND)
.analyzer("cjk")
.useDisMax(true)
);
}

builder.setFilter(filters);

SearchResponse response = builder
.execute()
.actionGet();

*Current caching before, it takes about 2-4 seconds.

I would like to receive a response within one second.
What can I do?
*
Thanks in advance for your answer.

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

My Elasticsearch version is 0.20.6

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.