1. A method, comprising:
maintaining, by a host service in a computer-readable memory, a collection of contacts, wherein each contact is associated with a domain and the collection comprises contacts from a plurality of domains;
maintaining, by an index interface, an index comprising one or more tables, wherein each table contains a plurality of elements, and wherein each element points to a subset of the contacts that share a common attribute;
receiving, via the host service, a first query to return at least one of the contacts in the collection, wherein the first query includes a domain and a first value;
accessing the index to identify a first element having a domain that matches the domain of the first query and an attribute that matches the first value; and
returning, in response to the first query, the contacts to which the first element points.
2. The method of claim 1, wherein the first value comprises a number of characters, and the method further comprises:
receiving, by the host service, a second query to return at least one of the contacts in the collection, wherein the second query comprises the first value plus an additional character;
accessing the index to identify a second element having a domain that matches the domain of the query and an attribute that matches the first value plus the additional character; and
returning, in response to the second query, the contacts to which the second element points.
3. The method of claim 2, further comprising:
receiving, by the host service, a third query, wherein the third query comprises at least a threshold number of characters;
accessing the index to identify a third element having a domain that matches the domain of the query and an attribute that matches the characters in the third query;
accessing a remote collection of contacts to identify an additional group of contacts having an attribute that matches the characters in the third query; and
returning, in response to the third query, the contacts to which the third element points and the additional group of contacts identified from the remote collection.
4. The method of claim 3, wherein the contacts returned in response to the third query comprise a complete set of all contacts that match the third query.
5. The method of claim 1, wherein the first query comprises a browsing request, and the method further comprises:
returning, in response to the first query, a plurality of selectable ranges within the returned contacts;
receiving, from a client device, a selection of one of the selectable ranges; and
returning, in response to the selection, a subset of the returned contacts that correspond to the selected range.
6. The method of claim 1, wherein the first query comprises a browsing request, the first value comprises a page number, and the method further comprises:
causing a client device to display the returned contacts starting on the page number that corresponds to the first value.
7. The method of claim 1, further comprising, by a processor, generating the index by:
processing the contacts in the collection to identify all contacts that correspond to a first domain;
grouping all contacts that correspond to the first domain into a first subset;
processing the contacts in the first subset to identify all contacts having a data field whose first character values are identical;
grouping the contacts having a data field whose first character values are identical into a second subset;
processing the contacts in the second subset to identify all contacts whose first two character values in the data field are identical;
grouping the contacts having a data field whose first two character values in the data field are identical into a third subset; and
saving the first, second and third subsets as tables in the index.
8. The method of claim 7, wherein saving the first, second and third subsets as tables in the index comprises:
partitioning the index into a plurality of logical storage units; and
saving the storage units across multiple storage devices.
9. The method of claim 1, wherein each of the elements comprises a key that is associated with a domain and a key-value.
10. The method of claim 9, wherein a plurality of the key-values comprise a prefix that corresponds to first set of characters within a profiled data field for a plurality of the contacts in the collection.
11. The method of claim 9, wherein a plurality of the key-values comprise a term that corresponds to a full value of a profiled data field for a plurality of the contacts in the collection.
12. A hosted contacts system, comprising:
a first data store comprising a non-transitory computer-readable medium storing a collection of contacts, wherein each contact is associated with a domain and the collection comprises contacts from a plurality of domains;
an index interface storing an index comprising one or more tables, wherein each table contains a plurality of elements, and wherein each element points to a subset of the contacts that share a common attribute; and
at least one server containing a processor and programming instructions that, when executed, cause the processor to:
receive, from a client device, a first query to return at least one of the contacts in the collection, wherein the first query includes a domain and a first value,
access the index to identify a first element having a domain that matches the domain of the first query and an attribute that matches the first value,
return, in response to the first query, the contacts to which the first element points, and
execute a command to transmit, to the client device, information corresponding to the returned contacts.
13. The system of claim 12, further comprising:
a second data store comprising a non-transitory computer-readable medium storing a second collection of contacts, wherein all contacts associated with a first domain are stored in the first data store and all contacts associated with a second domain are stored in the second data store; and
a second index interface storing a second index comprising one or more tables, wherein each table in the second index contains a plurality of elements, each of which points to a subset of the contacts in the second data store.
14. The system of claim 12, wherein the first value comprises a number of characters, and the system also comprises programming instructions that, when executed, cause the processor to:
receive a second query to return at least one of the contacts in the collection, wherein the second query comprises the first value plus an additional character;
access the index to identify a second element having a domain that matches the domain of the query and an attribute that matches the first value plus the additional character; and
return the contacts to which the second element points.
15. The system of claim 13, wherein the system also comprises programming instructions that, when executed, cause the processor to:
receive a third query, wherein the third query comprises at least a threshold number of characters;
access the index to identify a third element having a domain that matches the domain of the query and an attribute that matches the characters in the third query;
access a remote collection of contacts to identify an additional group of contacts having an attribute that matches the characters in the third query; and
return, in response to the third query, the contacts to which the third element points and the additional group of contacts identified from the remote collection.
16. The system of claim 12, wherein the system also comprises programming instructions that, when executed, cause the processor to:
determine that the first query is a browsing request;
return, in response to the first query, a plurality of selectable ranges within the returned contacts;
receive a selection of one of the selectable ranges; and
return, in response to the selection, a subset of the returned contacts that correspond to the selected range.
17. The system of claim 12, wherein the system also comprises programming instructions that, when executed, cause the processor to:
process the contacts in the collection to identify all contacts that correspond to a first domain;
group all contacts that correspond to the first domain into a first subset;
process the contacts in the first subset to identify all contacts having a data field whose first character values are identical;
group the contacts having a data field whose first character values are identical into a second subset;
process the contacts in the second subset to identify all contacts whose first two character values in the data field are identical;
group the contacts having a data field whose first two character values in the data field are identical into a third subset; and
save the first, second and third subsets as tables in the index.
18. The system of claim 17, wherein the system also comprises programming instructions that, when executed, cause the processor to:
partition the index into a plurality of logical storage units for storage across multiple storage devices.
19. The system of claim 12, wherein:
each of the elements comprises a key that is associated with a domain and a key-value; and
a plurality of the key-values comprise one or more of the following:
a prefix that corresponds to first set of characters within a profiled data field for a plurality of the contacts in the collection, and
a term that corresponds to a full value of a profiled data field for a plurality of the contacts in the collection.
20. A method, comprising:
maintaining, by a host service in a computer-readable memory, a collection of contacts, wherein each contact is associated with a domain and the collection comprises contacts from a plurality of domains;
maintaining, by, an index interface, an index comprising one or more tables, wherein:
each table contains a plurality of elements,
each element points to a subset of the contacts that share a common attribute,
each of the elements comprises a key that is associated with a domain and a key-value,
a plurality of the key-values comprise a prefix that corresponds to at least a first set of characters within a profiled data field for a plurality of the contacts in the collection;
receiving, via the host service, a first query to return at least one of the contacts in the collection, wherein the first query includes a domain and a first value comprising a plurality of characters;
accessing the index to identify a first element having a domain that matches the domain of the first query and an attribute that matches the first value; and
returning, in response to the first query, the contacts to which the first element points;
receiving, by the host service, a second query to return at least one of the contacts in the collection, wherein the second query comprises the first value plus an additional character;
accessing the index to identify a second element having a domain that matches the domain of the query and an attribute that matches the first value plus the additional character; and
returning, in response to the second query, the contacts to which the second element points.
21. The method of claim 20, further comprising:
receiving, by the host service, a third query, wherein the third query comprises at least a threshold number of characters;
accessing the index to identify a third element having a domain that matches the domain of the query and an attribute that matches the characters in the third query;
accessing a remote collection of contacts to identify an additional group of contacts having an attribute that matches the characters in the third query; and
returning, in response to the third query, the contacts to which the third element points and the additional group of contacts identified from the remote collection.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A vehicle travel assist apparatus, which performs speed-reduction control in which a relative deceleration of a host vehicle with respect to an object present ahead of the host vehicle in a traveling direction approaches a target relative deceleration, and a relative speed of the host vehicle with reference to the object becomes less than or equal to a specified speed at a target position set behind the object, the vehicle travel assist apparatus being characterized by being configured such that
a model deceleration change amount is set to be a smaller value in a state in which it is relatively more difficult to reduce the speed of the vehicle than in a state in which it is relatively easy to reduce the speed of the vehicle,
a subtraction value is obtained by subtracting the current relative deceleration from a target value, which corresponds to a result obtained by multiplying the model deceleration change amount by an elapsed time from a set time point of the model deceleration change amount, and
the target relative deceleration is determined to be a greater value when the subtraction value is great than when the subtraction value is small.
2. The vehicle travel assist apparatus according to claim 1, configured such that
the target value that corresponds to the result obtained by multiplying the model deceleration change amount by the elapsed time is set as a first target value,
based on the current relative speed and a distance between a current position of the vehicle and the target position, a target relative deceleration with which the relative speed becomes equal to or less than the specified speed at the target position is calculated as a second target value,
a subtraction value is obtained by subtracting the current relative deceleration from a smaller target value of the first and the second target values, and
the target relative deceleration is determined to be a greater value when the subtraction value is great than when the subtraction value is small.
3. The vehicle travel assist apparatus according to claim 2, configured such that
when a reference relative deceleration, which is a relative value with reference to a relative deceleration at the time when a starting condition of the speed-reduction control is met, reaches a specified relative deceleration, the model deceleration change amount is set to be a smaller value when a deceleration change amount, which is an amount of change of a reference relative deceleration at the time point, is small than when the deceleration change amount is great.
4. The vehicle travel assist apparatus according to claim 3, configured such that
when the reference relative deceleration is less than the specified relative deceleration, the target relative deceleration is kept at a target relative deceleration reference value, and
in a case in which the reference relative deceleration becomes equal to or more than the specified relative deceleration, the target relative deceleration is determined to be a greater value when a subtraction value obtained by subtracting the current relative deceleration from a smaller target value of the first and the second target values is great than when the subtraction value is small.
5. The vehicle travel assist apparatus according to claim 4, configured such that, when the reference relative deceleration becomes equal to or more than the specified relative deceleration,
on the assumption that the deceleration of the vehicle is maintained at the smaller target value of the first and the second target values, an estimated value of the distance traveled by the vehicle from the present time to a time point at which the relative speed becomes equal to or less than the specified speed is calculated as a target distance, and
on the assumption that the deceleration of the vehicle is maintained at a current deceleration of the vehicle, an estimated value of the distance traveled by the vehicle from the present time to a time point at which the relative speed becomes equal to or less than the specified speed is calculated as a speed reduction distance, and the target relative deceleration is set to be a greater value when a subtraction value obtained by subtracting the target distance from the speed reduction distance is great than when the subtraction value is small.
6. The vehicle travel assist apparatus according to claim 3, configured such that
when the reference relative deceleration is less than the specified relative deceleration, the target relative deceleration is kept at the target relative deceleration reference value, and
when the reference relative deceleration becomes equal to or more than the specified relative deceleration,
on the assumption that the deceleration of the vehicle is maintained at the smaller target value of the first and the second target values, an estimated value of the distance traveled by the vehicle from the present time to a time point at which the relative speed becomes equal to or less than the specified speed as the target distance, and the target relative deceleration is set to be a greater value when a subtraction value obtained by subtracting the distance between the current position of the vehicle and the target position from the target distance is great than when the subtraction value is small.