NOT condition not working in solr - solr

I am no Korean expert and am finding it difficult to fix this, searching for the following query, but the NOT condition doesn't seem to be working.
(stnostem:((옵티머스 OR "엘지 스마트폰") AND NOT ("옵티머스 프라임" OR 프라임)))
the search result return result with the NOT condition keywords? How can this be fixed.
Regards,
Ayush

You might try using the - to specify a pure negative query. Try the following:
stnostem:(옵티머스 OR "엘지 스마트폰") -stnostem:("옵티머스 프라임" OR 프라임)
You may need the AND between the two queries depending upon what your DefaultQueryOperator is.

Related

Solr empty query can't find the data

I am searching for a long time on net. But no use. Please help or try to give some ideas how to achieve this.
I tried to query the data of status==1 and projectMaintainUserIds!=null and leadsStatus!=null through the following statement, but the result is different from the expectation, and the returned result set is empty.
q=(status:1)&fq=(-projectMaintainUserIds:*) AND (-leadsStatus:12)
If I modify the query statement slightly, it seems to return the correct result:
q=(status:1)&fq=-projectMaintainUserIds:* AND -leadsStatus:12
I don't know why parentheses affect the results of '-filed:*' queries.

range of numeric values with unit in Solr

My problem is that i have documents containing a numeric value and a unit like this:
weight:100g
weight:1000kg
And i want to make querys like this:
weight:[5g TO 100KG]
Of course this doent work as easy as it sounds, the values are saved as strings. I did some research and came up with this https://dzone.com/articles/build-a-custom-solr-filter-to-handle-unit-conversions.
This worked out pretty well, i can search for:
weight:100000g and get results containing weight:100kg, nice. But i cant figure out how to extend this, to make a range-search possible.
Thanks for help, Patrick

Use array formula with index match

Is it possible to do an array formula with index match:
e.g:
=arrayformula(if(len(A3:A),INDEX('SheetB'!E:E,MATCH(A3:A,'SheetB'!H:H,0))))
If not, is there a solution that doesn't involve google scripts?
It seems INDEX can not return multiple values. It can not be used inside ARRAYFORMULA.
The only solution I know of is to use VLOOKUP.
See this thread :
https://productforums.google.com/forum/#!topic/docs/jVvjbz8u7A8
Example from there :
=ArrayFormula(VLOOKUP( B12:B15; H2:R32; 1; TRUE))
Cheers!
Use XLOOKUP
=ARRAYFORMULA(XLOOKUP(K2:K,R2:R,S2:S))
With XLOOKUP you can look in one column for a search term, and return a result from the same row in another column, regardless of which side the return column is on
In the OP's specific case, one can actually use VLOOKUP for its intended purpose, as a replacement for MATCH:
=arrayformula(if(len(A3:A),VLOOKUP(A3:A,{SheetB!E:E,SheetB!H:H},2,false)))
In the general case of trying to use INDEX to retrieve multiple values, it can be replaced with a kludge of VLOOKUP and SEQUENCE:
=arrayformula(VLOOKUP(A:A,{SEQUENCE(rows(B:B)),B:B},2,true))
does what would have been accomplished by
=arrayformula(INDEX(B:B,A:A))
if the latter worked as OP expected.
I know this is old now, but it turns out that INDEX() acts as a defacto ARRAYFORMULA() now. You can see a fabulous example of this on this google sheet, which shows how to use a and index(split()) to extract a particular set of text from a cell. The MK.demo tab provides a visual on how the array formula is implied with the INDEX() function.
Nowadays, using a FILTER() or QUERY() function can give the kinds of multiple vlookup the OP was looking for.
im not sure if its gonna work but i did an "IF(ISBLANK() before the INDEX(...) in the ARRAYFORMULA and it went down all the way

Error with MultiValue parameter

I made a couple of reports that are using a data-source for the parameter values. The same query is specified in available values and default values, so that I can select multiple values at once. The query usage is like this:
WHERE (Column.Name IN (#Parameter))
However, I get this error:
Any ideas what could it be? Other reports using same method work fine, but with this one it doesn't.
So i Ran the SQL Profiler and seen that the errors came from the code that is looking is the param a null (#param is null) that was the mistake because i allready sead in the options to now allow null
Thank you Chris Latta you helped me allot :)

Dynamic Search multiple terms in linqtosql

I'm trying to do the following, If a user the enters the term "IP Address Text" into my search box then I want the following SQL to be generated:
SELECT *
FROM tblComments
WHERE tblComments.Text LIKE '%IP%' OR tblComments.Text LIKE '%Address%' OR tblComments.Text LIKE '%Text%'
Obviously the number of words entered is going to be different each time.
I have tried a for each loop in LinqToSql adding multiple where clauses but this uses "AND" instead of "OR"
Any idea how to accomplish this?
You may want to read up on full text searching as an alternative to what you're trying to accomplish here. Searching for '%word%' will never perform well as the query cannot use an index.

Resources