Re: Searching for a term which isn't a part of an expression
I think queries would usually not contain more than one phrase per query, but there isn't a fixed list. Anyways, your solution is very very good for us. We could write a QueryParser or a SearchComponent that edits the Lucene Query object in the ResponseBuilder to include the relevant SpanNotQuery. Thanks a lot!!! On Thu, Dec 15, 2016 at 4:01 PM, Ahmet Arslanwrote: > Hi, > > > Span query family would be a pure query-time solution, SpanNotQuery in > particular. > > > SpanNearQuery include = new SpanTermQuery(new Term(FIELD, "world"); > > > SpanNearQuery exclude = new SpanNearQuery(new SpanQuery[] { > new SpanTermQuery(new Term(FIELD, "hello")), > new SpanTermQuery(new Term(FIELD, "world"))}, > 0, > true); > > SpanQuery finalQuery = new SpanNotQuery(include, exclude) > This finalQuery supposed to retrieve documents that have the term "world" > but not as a part of "hello world". > > > > Is your list of phrases query dependent? If yes how many phrases per-query? > > Or you have a global list of phrases? > > Ahmet > > On Thursday, December 15, 2016 10:32 AM, Dean Gurvitz > wrote: > > > > Hi, > The list of phrases wil be relatively dynamic, so changing the indexing > process isn't a very good solution for us. > > We also considered using a PostFilter or adding a SearchComponent to filter > out the "bad" results, but obviously a true query-time support would be a > lot better. > > > > On Wed, Dec 14, 2016 at 10:52 PM, Ahmet Arslan > wrote: > > > Hi, > > > > Do you have a common list of phrases that you want to prohibit partial > > match? > > You can index those phrases in a special way, for example, > > > > This is a new world hello_world hot_dog tap_water etc. > > > > ahmet > > > > > > On Wednesday, December 14, 2016 9:20 PM, deansg > wrote: > > We would like to enable queries for a specific term that doesn't appear > as > > a > > part of a given expression. Negating the expression will not help, as we > > still want to return items that contain the term independently, even if > > they > > contain full expression as well. > > For example, we would like to search for items that have the term "world" > > but not as a part of "hello world". If the text is: "This is a new world. > > Hello world", we would still want to return the item, as "world" appears > > independently as well as a part of "Hello world". However, we will not > want > > to return items that only have the expression "hello world" in them. > > Does Solr support these types of queries? We thought about using regex, > but > > since the text is tokenized I don't think that will be possible. > > > > > > > > -- > > View this message in context: http://lucene.472066.n3. > > nabble.com/Searching-for-a-term-which-isn-t-a-part-of-an- > > expression-tp4309746.html > > Sent from the Solr - User mailing list archive at Nabble.com. > > >
Re: Searching for a term which isn't a part of an expression
Hi, Span query family would be a pure query-time solution, SpanNotQuery in particular. SpanNearQuery include = new SpanTermQuery(new Term(FIELD, "world"); SpanNearQuery exclude = new SpanNearQuery(new SpanQuery[] { new SpanTermQuery(new Term(FIELD, "hello")), new SpanTermQuery(new Term(FIELD, "world"))}, 0, true); SpanQuery finalQuery = new SpanNotQuery(include, exclude) This finalQuery supposed to retrieve documents that have the term "world" but not as a part of "hello world". Is your list of phrases query dependent? If yes how many phrases per-query? Or you have a global list of phrases? Ahmet On Thursday, December 15, 2016 10:32 AM, Dean Gurvitzwrote: Hi, The list of phrases wil be relatively dynamic, so changing the indexing process isn't a very good solution for us. We also considered using a PostFilter or adding a SearchComponent to filter out the "bad" results, but obviously a true query-time support would be a lot better. On Wed, Dec 14, 2016 at 10:52 PM, Ahmet Arslan wrote: > Hi, > > Do you have a common list of phrases that you want to prohibit partial > match? > You can index those phrases in a special way, for example, > > This is a new world hello_world hot_dog tap_water etc. > > ahmet > > > On Wednesday, December 14, 2016 9:20 PM, deansg wrote: > We would like to enable queries for a specific term that doesn't appear as > a > part of a given expression. Negating the expression will not help, as we > still want to return items that contain the term independently, even if > they > contain full expression as well. > For example, we would like to search for items that have the term "world" > but not as a part of "hello world". If the text is: "This is a new world. > Hello world", we would still want to return the item, as "world" appears > independently as well as a part of "Hello world". However, we will not want > to return items that only have the expression "hello world" in them. > Does Solr support these types of queries? We thought about using regex, but > since the text is tokenized I don't think that will be possible. > > > > -- > View this message in context: http://lucene.472066.n3. > nabble.com/Searching-for-a-term-which-isn-t-a-part-of-an- > expression-tp4309746.html > Sent from the Solr - User mailing list archive at Nabble.com. >
Re: Searching for a term which isn't a part of an expression
Hi, The list of phrases wil be relatively dynamic, so changing the indexing process isn't a very good solution for us. We also considered using a PostFilter or adding a SearchComponent to filter out the "bad" results, but obviously a true query-time support would be a lot better. On Wed, Dec 14, 2016 at 10:52 PM, Ahmet Arslanwrote: > Hi, > > Do you have a common list of phrases that you want to prohibit partial > match? > You can index those phrases in a special way, for example, > > This is a new world hello_world hot_dog tap_water etc. > > ahmet > > > On Wednesday, December 14, 2016 9:20 PM, deansg wrote: > We would like to enable queries for a specific term that doesn't appear as > a > part of a given expression. Negating the expression will not help, as we > still want to return items that contain the term independently, even if > they > contain full expression as well. > For example, we would like to search for items that have the term "world" > but not as a part of "hello world". If the text is: "This is a new world. > Hello world", we would still want to return the item, as "world" appears > independently as well as a part of "Hello world". However, we will not want > to return items that only have the expression "hello world" in them. > Does Solr support these types of queries? We thought about using regex, but > since the text is tokenized I don't think that will be possible. > > > > -- > View this message in context: http://lucene.472066.n3. > nabble.com/Searching-for-a-term-which-isn-t-a-part-of-an- > expression-tp4309746.html > Sent from the Solr - User mailing list archive at Nabble.com. >
Re: Searching for a term which isn't a part of an expression
Hi, Do you have a common list of phrases that you want to prohibit partial match? You can index those phrases in a special way, for example, This is a new world hello_world hot_dog tap_water etc. ahmet On Wednesday, December 14, 2016 9:20 PM, deansgwrote: We would like to enable queries for a specific term that doesn't appear as a part of a given expression. Negating the expression will not help, as we still want to return items that contain the term independently, even if they contain full expression as well. For example, we would like to search for items that have the term "world" but not as a part of "hello world". If the text is: "This is a new world. Hello world", we would still want to return the item, as "world" appears independently as well as a part of "Hello world". However, we will not want to return items that only have the expression "hello world" in them. Does Solr support these types of queries? We thought about using regex, but since the text is tokenized I don't think that will be possible. -- View this message in context: http://lucene.472066.n3.nabble.com/Searching-for-a-term-which-isn-t-a-part-of-an-expression-tp4309746.html Sent from the Solr - User mailing list archive at Nabble.com.
Searching for a term which isn't a part of an expression
We would like to enable queries for a specific term that doesn't appear as a part of a given expression. Negating the expression will not help, as we still want to return items that contain the term independently, even if they contain full expression as well. For example, we would like to search for items that have the term "world" but not as a part of "hello world". If the text is: "This is a new world. Hello world", we would still want to return the item, as "world" appears independently as well as a part of "Hello world". However, we will not want to return items that only have the expression "hello world" in them. Does Solr support these types of queries? We thought about using regex, but since the text is tokenized I don't think that will be possible. -- View this message in context: http://lucene.472066.n3.nabble.com/Searching-for-a-term-which-isn-t-a-part-of-an-expression-tp4309746.html Sent from the Solr - User mailing list archive at Nabble.com.