lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ahmet Arslan <iori...@yahoo.com>
Subject Re: Searching multivalue fields.
Date Sat, 05 Apr 2014 16:44:48 GMT
Hi,

Did restart solr and you re-index after schema change?
On Saturday, April 5, 2014 2:39 AM, Vijay Kokatnur <kokatnur.vijay@gmail.com> wrote:
 
I had already tested with omitTermFreqAndPositions="false" .  I still got the same error.

Is there something that I am overlooking?


On Fri, Apr 4, 2014 at 2:45 PM, Ahmet Arslan <iorixxx@yahoo.com> wrote:

Hi Vijay,
>
>
>Add omitTermFreqAndPositions="false"  attribute to fieldType definitions.
>
>
>    <fieldType name="string" class="solr.StrField" omitTermFreqAndPositions="false"
sortMissingLast="true" />
>
>
>
>   <fieldType name="int" class="solr.TrieIntField" omitTermFreqAndPositions="false" precisionStep="0"
positionIncrementGap="0"/>
>
>
>You don't need termVectors  for this.
>
>
>   1.2: omitTermFreqAndPositions attribute introduced, true by default 
>            except for text fields.
>
>
>And please reply to solr user mail, so others can use the threat later on.
>
>Ahmet
>On Saturday, April 5, 2014 12:18 AM, Vijay Kokatnur <kokatnur.vijay@gmail.com> wrote:
> 
>Hey Ahmet, 
>
>
>Sorry it took some time to test this.  But schema definition seem to conflict with SpanQuery.
 I get following error when I use Spans 
>
>
>field "OrderLineType" was indexed without position data; cannot run SpanTermQuery (term=11)
>
>I changed field definition in the schema but can't find the right attribute to set this.
 My last attempt was with following definition 
>
>
>   <field name="OrderLineType" type="string" indexed="true" stored="true" multiValued="true"
termVectors="true" termPositions="true" termOffsets="true"/>
>
>
> Any ideas what I am doing wrong?
>
>
>Thanks,
>-Vijay
>
>
>On Wed, Mar 26, 2014 at 1:54 PM, Ahmet Arslan <iorixxx@yahoo.com> wrote:
>
>Hi Vijay,
>>
>>After reading the documentation it seems that following query is what you are after.
It will return OrderId:345 without matching OrderId:123
>>
>>SpanQuery q1  = new SpanTermQuery(new Term("BookingRecordId", "234"));
>>SpanQuery q2  = new SpanTermQuery(new Term("OrderLineType", "11"));
>>SpanQuery q2m new FieldMaskingSpanQuery(q2, "BookingRecordId");
>>Query q = new SpanNearQuery(new SpanQuery[]{q1, q2m}, -1, false);
>>
>>Ahmet
>>
>>
>>
>>
>>On Wednesday, March 26, 2014 10:39 PM, Ahmet Arslan <iorixxx@yahoo.com> wrote:
>>Hi Vijay,
>>
>>I personally don't understand joins very well. Just a guess may be FieldMaskingSpanQuery
could be used?
>>
>>http://blog.griddynamics.com/2011/07/solr-experience-search-parent-child.html
>>
>>
>>Ahmet
>>
>>
>>
>>
>>On Wednesday, March 26, 2014 9:46 PM, Vijay Kokatnur <kokatnur.vijay@gmail.com>
wrote:
>>Hi,
>>
>>I am bumping this thread again one last time to see if anyone has a
>>solution.
>>
>>In it's current state, our application is storing child items as multivalue
>>fields.  Consider some orders, for example -
>>
>>
>>{
>>OrderId:123
>>BookingRecordId : ["145", "987", "*234*"]
>>OrderLineType : ["11", "12", "*13*"]
>>.....
>>}
>>{
>>OrderId:345
>>BookingRecordId : ["945", "882", "*234*"]
>>OrderLineType : ["1", "12", "*11*"]
>>.....
>>}
>>{
>>OrderId:678
>>BookingRecordId : ["444"]
>>OrderLineType : ["11"]
>>.....
>>}
>>
>>
>>Here, If you look up for an Order with BookingRecordId: 234 And
>>OrderLineType:11.  You will get two orders with orderId : 123 and 345,
>>which is correct.  You have two arrays in both the orders that satisfy this
>>condition.
>>
>>However, for OrderId:123, the value at 3rd index of OrderLineType array is
>>13 and not 11( this is for OrderId:345).  So orderId 123 should be
>>excluded. This is what I am trying to achieve.
>>
>>I got some suggestions from a solr-user to use FieldsCollapsing, Join,
>>Block-join or string concatenation.  None of these approaches can be used
>>without re-indexing schema.
>>
>>Has anyone found a non-invasive solution for this?
>>
>>Thanks,
>>
>>-Vijay
>>
>>
>
>
>
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message