Hi Muhammad,
If the limit(s) are static, you can still do it at index time: Assuming you 
send “content” field, you index it fully (and store if needed), and you use 
copy field to copy to content_limitted field where you use limit token count 
filter to index only first X tokens: 
https://lucene.apache.org/solr/guide/6_6/filter-descriptions.html#FilterDescriptions-LimitTokenCountFilter
 
<https://lucene.apache.org/solr/guide/6_6/filter-descriptions.html#FilterDescriptions-LimitTokenCountFilter>

You can use CloneFieldUpdateProcessorFactory in combination with 
TruncateFieldUpdateProcessorFactory to do the similar thing in update request 
processor chain.

HTH,
Emir
--
Monitoring - Log Management - Alerting - Anomaly Detection
Solr & Elasticsearch Consulting Support Training - http://sematext.com/



> On 29 Jan 2018, at 11:51, Muhammad Zahid Iqbal 
> <zahid.iq...@northbaysolutions.net> wrote:
> 
> Thanks Erick.
> 
> This is fine but I do not want to update my indexes as this configuration
> will get applied to indexing as well. I have a requirement where one field
> (XYZ) of type (text) requires two types of searches.
> 
> One is simple, search query will look for whole content indexed in XYZ field
> Other one is, search query will have to look for first 100 characters
> indexed in same XYZ field.
> 
> So I just want to do this at query time only.
> 
> Any idea? Would be much appreciated!
> 
> 
> On Sat, Jan 27, 2018 at 10:27 PM, Erick Erickson <erickerick...@gmail.com>
> wrote:
> 
>> Sure, use TruncateFieldUpdateProcessorFactory in your update chain,
>> here's the base definition:
>> 
>>  <updateRequestProcessorChain name="truncate">
>>    <processor class="solr.TruncateFieldUpdateProcessorFactory">
>>      <str name="fieldName">trunc</str>
>>      <int name="maxLength">5</int>
>>    </processor>
>>  </updateRequestProcessorChain>
>> 
>> This _can_ be configured to operate on "all StrField", or "all
>> TextFields" as well, see the Javadocs.
>> 
>> This is static, that is the field is truncated at index time so you
>> can't change the values per-request.
>> 
>> Best,
>> Erick
>> 
>> 
>> 
>> On Sat, Jan 27, 2018 at 6:32 AM, Muhammad Zahid Iqbal
>> <zahid.iq...@northbaysolutions.net> wrote:
>>> Thanks.
>>> 
>>> I do not want to search if the query is shorter than a certain number of
>>> terms/characters.
>>> 
>>> For example, I have a 10MB document indexed in Solr what I want is to
>>> search query in first 1MB content of that indexed document.
>>> 
>>> Any workaround e.g .can I send query to Solr to look for only 1MB from
>>> start of document.?
>>> 
>>> 
>>> 
>>> On Fri, Jan 26, 2018 at 10:46 PM, Diego Ceccarelli (BLOOMBERG/ LONDON) <
>>> dceccarel...@bloomberg.net> wrote:
>>> 
>>>> Hi Zahid, if you want to allow searching only if the query is shorter
>> than
>>>> a certain number of terms / characters, I would do it before calling
>> solr
>>>> probably, otherwise you could write a QueryParserPlugin (see [1]) and
>> check
>>>> that the query is sound before processing it.
>>>> See also: http://coding-art.blogspot.co.uk/2016/05/writing-custom-
>>>> solr-query-parser-for.html
>>>> 
>>>> Cheers,
>>>> Diego
>>>> 
>>>> [1] https://wiki.apache.org/solr/SolrPlugins
>>>> 
>>>> 
>>>> From: solr-user@lucene.apache.org At: 01/26/18 13:24:36To:
>>>> solr-user@lucene.apache.org
>>>> Cc:  apa...@elyograg.org
>>>> Subject: ***UNCHECKED*** Limit Solr search to number of character/words
>>>> (without changing index)
>>>> 
>>>> Hi All,
>>>> 
>>>> Is there any way I can restrict Solr search query to look for specified
>>>> number of characters/words (for only searching purposes not for
>>>> highlighting)
>>>> 
>>>> *For example:*
>>>> 
>>>> *Indexed content:*
>>>> *I am a man of my words I am a lazy man...........*
>>>> 
>>>> Search to consider only below mentioned (words=7 or characters=16)
>>>> *I am a man of my words*
>>>> 
>>>> If I search for *lazy *no record should find.
>>>> If I search for *a *1 record should find.
>>>> 
>>>> 
>>>> Thanks
>>>> Zahid Iqbal
>>>> 
>>>> 
>>>> 
>> 

Reply via email to