[opencms-dev] Lucene date range search in individual xmlContent date fields
"Rüdiger Kurz (list)"
r.kurz at alkacon.com
Tue May 22 19:18:15 CEST 2012
Hi Bernd,
OpenCms 7.5.x supports the configuration of field mappings that is done
in the opencms-search.xml. If you add a field mapping like:
<field name="my_date" store="true" index="true">
<mapping type="dynamic" class="example.MyFieldMapping">my_date</mapping>
</field>
you are able to create a class that extends CmsSearchFieldMapping and
overwrite the method getStringValue:
https://github.com/alkacon/opencms-core/blob/branch_7_5_x/src/org/opencms/search/fields/CmsSearchFieldMapping.java#L141
String getStringValue(
CmsObject cms,
CmsResource res,
I_CmsExtractionResult extractionResult,
List<CmsProperty> properties,
List<CmsProperty> propertiesSearched) {
// for example write something like:
String result = null;
if (getType().getMode()
== CmsSearchFieldMappingType.DYNAMIC.getMode()
&& "my_date".equals(getParam())) {
// do your special date mapping here
// Generate date terms for optimized date range search.
// @see CmsLuceneIndex#getDateRangeSpan(long, long)
// *** return the String representation of that terms ***
}
return super.getStringValue(
cms,
res,
extractionResult,
properties,
propertiesSearched);
}
*** return the String representation of that terms ***
maybe this utility method from OpenCms v8 is interesting for you:
https://github.com/alkacon/opencms-core/blob/master/src/org/opencms/search/fields/CmsSearchFieldConfiguration.java#L132
I know this is really concrete but anyway I hope that it will give you a
hand...
regards
Rüdiger
On 05/22/2012 06:34 PM, ] Code Create [ Bernd Wolfsegger wrote:
> Hi Rüdiger,
>
> thanx for your answer.
>
> As I understood it, Lucene (up to version 2.9) range search is only done
> lexographically, so date values have to be saved in the index in a string
> format like "yyyyMMddHHmmss".
> Search itself is handled by lucene then.
> So does OpenCms store its "date" xml content values (as defined in an xml
> content schema) that way in the index when mapped for a file via the field
> configuration?
> Or do you have to write that extra lines of Java classes for this purpose :)
>
> Is there a difference between OpenCms 7.5.x and 8.0.x in that matter? Lucene
> 2.9 and up is capable of handling other than String data.
>
> By the way. I don't want to restrict my search to date values. I'd like to
> include search for dates and date ranges transparently with searching in
> other text fields.
>
> So one is able to search by: "mydate:[201205 TO 201206]"
> As well as: "some other searchterm"
>
> Kind regards, Bernd
>
>
>> -----Ursprüngliche Nachricht-----
>> Von: "Rüdiger Kurz (list)" [mailto:r.kurz at alkacon.com]
>> Gesendet: Dienstag, 22. Mai 2012 16:51
>> An: ocms at code-create.de; The OpenCms mailing list
>> Betreff: Re: [opencms-dev] Lucene date range search in individual
>> xmlContent date fields
>>
>> Hi,
>>
>> performance is the reason for not using "long" values to search for
>> date
>> ranges.
>>
>> If you want to restrict your search based on an individual dates
>> specified in a schema of an XML content. You don't come along writing
>> some lines of Java classes, compile them and put them into the class
>> path of the servlet container.
>>
>> Please let me know, if this would be a possibility for you.
>>
>> greetings
>> Rüdiger
>>
>> On 05/22/2012 04:36 PM, ] Code Create [ Bernd Wolfsegger wrote:
>>> Hi,
>>>
>>> does anyone know how to accomplish this, if it is possible at all?
>>> I have no problem searching with a query like: "created:[201205 TO
>> 201206]"
>>> But how do I configure fields to search in for my own specific xml-
>> content
>>> date fields?
>>> I tried a field configuration where I mapped an xml-content date
>> field, but
>>> I didn't get any results in the search.
>>> I'm using the Lucene Snowball analyzer (2.4.1)
>>>
>>> Anyone tried similar stuff ? :-)
>>>
>>> Thanx for any hints.
>>>
>>> Still using OpenCms 7.5.1
>>>
>>>
>>> Kind regards, Bernd
>>>
>>> _______________________________________________
>>> This mail is sent to you from the opencms-dev mailing list
>>> To change your list options, or to unsubscribe from the list, please
>> visit
>>> http://lists.opencms.org/cgi-bin/mailman/listinfo/opencms-dev
>>>
>>>
>>>
>>
>> --
>> Kind Regards,
>> Rüdiger.
>>
>> -------------------
>>
>> Visit OpenCms Days 2012 Conference and Expo September 24 to 25, 2012 in
>> Cologne, Germany http://www.opencms-days.org
>>
>> Rüdiger Kurz
>>
>> Alkacon Software GmbH - The OpenCms Experts
>> http://www.alkacon.com - http://www.opencms.org
>
> _______________________________________________
> This mail is sent to you from the opencms-dev mailing list
> To change your list options, or to unsubscribe from the list, please visit
> http://lists.opencms.org/cgi-bin/mailman/listinfo/opencms-dev
>
>
>
--
Kind Regards,
Rüdiger.
-------------------
Visit OpenCms Days 2012 Conference and Expo September 24 to 25, 2012 in
Cologne, Germany http://www.opencms-days.org
Rüdiger Kurz
Alkacon Software GmbH - The OpenCms Experts
http://www.alkacon.com - http://www.opencms.org
More information about the opencms-dev
mailing list