[CLucene-dev] Re: [sword-devel] clucene-sorting
Ben van Klinken
bvanklinken at gmail.com
Fri Dec 23 05:46:59 MST 2005
As of clucene 0.9 you can also write a custom sorter, which could
directly compare the verses, thus saving index size - at the cost of a
slower first search (subsequent searches can have their sort cached).
ben
On 12/23/05, DM Smith <dmsmith555 at yahoo.com> wrote:
>
> L.J.Arthur Neil wrote:
>
> Hi All,
> How can I do soring.I am able to Index and order .But the Sort function
> doesn't work.
> This question may be best answered by the lucene users mailing list.
>
> What are you attempting to do? It is not clear from your example what you
> are sorting upon. The Sword modules do not have a "modified" field. What is
> left uncommented is the return of documents in index order, which should be
> the same as verse order when searching a Bible. Is this not working?
>
> In order to sort, Lucene requires that the field is represented a certain
> way in the index. If you let us know which field you are going after, we can
> check to see if that field is constructed sufficient for sorting.
>
> One way to sort is to do it externally to lucene. For example, with each
> verse in the index is a stored verse reference. This can be converted to a
> number representing its ordering in the Bible. Setting a bit in a bit map
> and then iterating over the bits in the bit map will give the verses in
> Bible order.
>
> In His Service,
> DM Smith
>
>
> I have used the following code;
> Query* q =
> QueryParser::parse(tline,_T("contents"),&analyzer);
> //buf = q->toString(_T("contents"));
> // _tprintf(_T("Searching for: %s\n\n"), buf);
> //_CLDELETE_CARRAY(buf);
> //searcher->setSort(_T("modified"));
> //SortField *sort_Field = new SortField(_T("modified"));
> //SortField *sort_Fields = new SortField(*sort_Field);
> //Sort *sort = new Sort(sort_Field);
> //sort->setSort( new SortField (_T("modified"),
> SortField::STRING, true) );
> //sort->setSort( _T("modified"),true);
> //sort->setSort( _T("modified") ); */
> Hits* h;
> try
> {
> h = searcher->search(q, sort::INDEXORDER);
> //h = searcher->search(q);
> }
> catch(...)
> {
> //printf("err\n");
> printf("Unrecoverable error occured!!!Please do
> search again...\n");
> //printf(err.what());
> //fflush(stdout);
> return;
> }
>
> -------------------------------------------------------
> This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
> for problems? Stop! Download the new AJAX search engine that makes searching
> your log files as easy as surfing the web. DOWNLOAD SPLUNK!
> http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
> _______________________________________________
> CLucene-developers mailing list
> CLucene-developers at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/clucene-developers
More information about the sword-devel
mailing list