Hi,
I think this should do it...
<code>
SortField dateSortField = new SortField("year", false); //the
second argument reverses the sort direction if set to true
SortField scoreSortField= new SortField(null, SortField.SCORE,
false); // value of null for field, since 'score' is not really a field
SortField[] allSortFields= new SortField[] {dateSortField,
scoreSortField}; //add any number of SortFieldto an array
Sort sort = new Sort(allSortFields); //Use the Sort(SortField[]
fields) constructor, then use that Sort object when you search.
</code>
-John
Ariel wrote:
> What I am doing is this:
> <code>
> Sort sort = new Sort();
> sort.setSort("year", true);
> hits = searcher.search(pquery,sort);
> </code>
>
> How I must put my code to sort first by date an then by score ???
> Greetings
> Ariel
>
>
> On Thu, Dec 18, 2008 at 4:48 AM, Ian Lea <ian.lea@gmail.com> wrote:
>
>
>> Lucene lets you sort by multiple fields, including score. See the
>> javadocs for Sort and SortField, specifically SortField.SCORE.
>>
>>
>> --
>> Ian.
>>
>> On Wed, Dec 17, 2008 at 8:15 PM, Ariel <isaacrc82@gmail.com> wrote:
>>
>>> Hi:
>>> This solution have a problem.
>>> the results are sorted bye the year criteria but I need that after sort
>>>
>> by
>>
>>> year criteria it sort by the scoring criteria two.
>>> How can I do this ???
>>>
>>> I hope you can help me.
>>> Greetings
>>> Ariel
>>>
>>> On Wed, Nov 19, 2008 at 5:28 PM, Erick Erickson <erickerickson@gmail.com
>>> wrote:
>>>
>>>
>>>> Well, MultiSearcher is just a Searcher, so you have available
>>>> all of the search methods on Searcher. One of which is:
>>>>
>>>> search
>>>>
>>>> public TopFieldDocs
>>>>
>>>>
>>>>
>> <file:///C:/lucene-2.1.0/docs/api/org/apache/lucene/search/TopFieldDocs.html>
>>
>>>> *search*(Query
>>>> <file:///C:/lucene-2.1.0/docs/api/org/apache/lucene/search/Query.html>
>>>> query,
>>>> Filter
>>>> <file:///C:/lucene-2.1.0/docs/api/org/apache/lucene/search/Filter.html>
>>>> filter,
>>>> int n,
>>>> Sort
>>>> <file:///C:/lucene-2.1.0/docs/api/org/apache/lucene/search/Sort.html>
>>>> sort)
>>>> throws IOException
>>>> <http://java.sun.com/j2se/1.4/docs/api/java/io/IOException.html>
>>>>
>>>> Expert: Low-level search implementation with arbitrary sorting. Finds
>>>>
>> the
>>
>>>> top n hits for query, applying filter if non-null, and sorting the hits
>>>>
>> by
>>
>>>> the criteria in sort.
>>>>
>>>>
>>>> Best
>>>> Erick
>>>>
>>>>
>>>> On Wed, Nov 19, 2008 at 4:22 PM, Ariel <isaacrc82@gmail.com> wrote:
>>>>
>>>>
>>>>> Well, this is what I am doing:
>>>>>
>>>>> queryString="year:[2003 TO 2005]"
>>>>> [CODE]
>>>>> Query pquery = null;
>>>>> Hits hits = null;
>>>>> Analyzer analyzer = null;
>>>>> analyzer = new SnowballAnalyzer("English");
>>>>> try {
>>>>> pquery = MultiFieldQueryParser.parse(new String[] {queryString,
>>>>> queryString}, new String[] {"title", "content"}, analyzer); //analyzer
>>>>> } catch (ParseException e1) {
>>>>> e1.printStackTrace();
>>>>> }
>>>>> MultiSearcher searcher = (MultiSearcher) searcherCache.get(name);
>>>>>
>>>>> try {
>>>>> hits = searcher.search(pquery);
>>>>> } catch (IOException e1) {
>>>>> e1.printStackTrace();
>>>>> }
>>>>> [/CODE]
>>>>>
>>>>> I don't know the methods that include sorting. I have made the sorting
>>>>>
>> by
>>
>>>>> the score criteria so far, I don-t know how to change it to the year
>>>>>
>>>> field
>>>>
>>>>> criteria.
>>>>> As you can see, I am using a multisearcher because I have several
>>>>>
>>>> indexes.
>>>>
>>>>> I hope you can help me.
>>>>> Regards
>>>>> Thanks in advance
>>>>> Ariel
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Nov 19, 2008 at 3:58 PM, Ian Lea <ian.lea@gmail.com> wrote:
>>>>>
>>>>>
>>>>>> Are you using one of the search methods that includes sorting? If
>>>>>> not, then do. If you are, then you need to tell us exactly what
you
>>>>>> are doing and exactly what you reckon is going wrong.
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Ian.
>>>>>>
>>>>>>
>>>>>> On Wed, Nov 19, 2008 at 6:23 PM, Ariel <isaacrc82@gmail.com>
wrote:
>>>>>>
>>>>>>> it is supposed lucene make a lexicocraphic sorting but this is
not
>>>>>>>
>>>>>> hapening,
>>>>>>
>>>>>>> Could you tell me what I'm doing wrong ?
>>>>>>> I hope you can help me.
>>>>>>> Regards
>>>>>>>
>>>>>>> On Wed, Nov 19, 2008 at 11:56 AM, Ariel <isaacrc82@gmail.com>
>>>>>>>
>> wrote:
>>
>>>>>>>> Thanks, that was very helpful, but I have a question when
I make
>>>>>>>>
>> the
>>
>>>>>>>> searches it does not sort the results according to the range,
for
>>>>>>>>
>>>>>> example:
>>>>>>
>>>>>>>> year: [2003 TO 2008] in the first page 2003 documents are
showed,
>>>>>>>>
>> in
>>
>>>>> the
>>>>>
>>>>>>>> second 2005 documents, in the third page 2004 documents,
I don't
>>>>>>>>
>> see
>>
>>>>> any
>>>>>
>>>>>>>> sort criteria.
>>>>>>>> How could I fix that problem ???
>>>>>>>> Greetings
>>>>>>>> Ariel
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Nov 19, 2008 at 11:09 AM, Ian Lea <ian.lea@gmail.com>
>>>>>>>>
>>>> wrote:
>>>>
>>>>>>>>> Hi - sounds like you need a range query.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>> http://lucene.apache.org/java/2_3_2/queryparsersyntax.html#Range%20Searches
>>
>>>>>>>>> --
>>>>>>>>> Ian.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Wed, Nov 19, 2008 at 4:02 PM, Ariel <isaacrc82@gmail.com>
>>>>>>>>>
>>>> wrote:
>>>>
>>>>>>>>>> Hi everybody:
>>>>>>>>>>
>>>>>>>>>> I need to make search with lucene 2.3.2, taking in
account the
>>>>>>>>>>
>>>>> dates,
>>>>>
>>>>>>>>>> previously when I build the index I create a date
field where
>>>>>>>>>>
>> I
>>
>>>>>> stored
>>>>>>
>>>>>>>>> the
>>>>>>>>>
>>>>>>>>>> year in which the document was created, at the search
moment I
>>>>>>>>>>
>>>>> would
>>>>>
>>>>>>>>> like to
>>>>>>>>>
>>>>>>>>>> retrieve documents that have been created before
a Year or
>>>>>>>>>>
>> after
>>
>>>> a
>>>>
>>>>>> Year,
>>>>>>
>>>>>>>>> for
>>>>>>>>>
>>>>>>>>>> example documents before 2002 year o after 2003 year.
>>>>>>>>>> It is possible to do that with lucene ???
>>>>>>>>>> Regards
>>>>>>>>>> Ariel
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>> ---------------------------------------------------------------------
>>>>
>>>>>>>>> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>>>>>>>>> For additional commands, e-mail:
>>>>>>>>>
>> java-user-help@lucene.apache.org
>>
>>>>>>>>>
>>>>>>
>> ---------------------------------------------------------------------
>>
>>>>>> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>>>>>> For additional commands, e-mail: java-user-help@lucene.apache.org
>>>>>>
>>>>>>
>>>>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>> For additional commands, e-mail: java-user-help@lucene.apache.org
>>
>>
>>
>
>
> ------------------------------------------------------------------------
>
>
> No virus found in this incoming message.
> Checked by AVG - http://www.avg.com
> Version: 8.0.176 / Virus Database: 270.9.19/1854 - Release Date: 12/17/2008 7:21 PM
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org
|