edismax

Different search term on different fields using edismax query parser in solr

被刻印的时光 ゝ 提交于 2021-02-11 12:49:33
问题 I have a solr query that searches on multiple fields. To increase the recall, I also do wildcard and fuzzy query. I use edismax query parser because I also have to use boost function. Here is the relevant parts of the query: defType=edismax&q= (wine AND company) OR (wine* AND company*)^0.5 OR (wine* OR company*)^0.01 OR (wine~1 AND company~1)^0.02&qf=primary_tags^1 secondary_tags_s^0.2 merchant_name_s^0.5 Now, the above query searches for (wine AND company) OR (wine* AND company*)^0.5 OR

Confuse about the tie and qf in edismax

和自甴很熟 提交于 2020-01-03 04:59:09
问题 I am confused about the qf and tie parameters in eDisMax According to the document: The qf is used to specify which field to search, while tie is use to specify all other field(except the highest score field)'s affect to the total score. My confusion is since we already specify which field(suppose we only specify only one field) to search, why we still be able to get other fields to affect the total results(I guess this must be my misunderstanding to how edismax works, but this is also my

Solr * vs *:* query performance

坚强是说给别人听的谎言 提交于 2020-01-03 03:16:18
问题 We're running Solr 3.4 and have a relatively small index of 90,000 documents or so. These documents are split over several logical sources, and so each search will have an applied filter query for a particular source, e.g: ?q=<query>&fq=source:<source> where source is a classic string field. We're using edismax and have a default search field text . We are currently seeing q=* taking on average 20 times longer to run than q=*:* . The difference is quite noticeable, with *:* taking 100ms and *

Solr - Boosting result if query is found in a special field

删除回忆录丶 提交于 2019-12-25 05:14:58
问题 I am wondering if it is possible with Solr 3.4 to boost a search result, if the query is found in a special field without using the "fieldname:query"-syntax. Let me explain: I have several fields in my index. One of it is named "abbreviation" and is filled with text like AVZ, JSP, DECT, ... To be able to find results when searching purely for "AVZ" I added a <copyField source="abbreviation" dest="text"/> in my schema.xml. The field text is my defaultSearchField. This is not the best solution

Solr negative boost

时光怂恿深爱的人放手 提交于 2019-12-24 13:55:04
问题 I'm looking into the possibility of de-boosting a set of documents during query time. In my application, when I search for e.g. "preferences", I want to de-boost content tagged with ContentGroup:"Developer" or in other words, push those content back in the order. Here's the catch. I've the following weights on query fields and boost query on source qf=text^6 title^15 IndexTerm^8 As you can see, title has a higher weight. Now, a bunch of content tagged with ContentGroup:"Developer" consists of

Dismax Request Handler

天大地大妈咪最大 提交于 2019-12-23 05:29:36
问题 I'm using solr to search a set of data by name (e.g. "Dan" or "Joe Smith"). I'd like to return the results specified by the query (edit: with a wildcard on the end) in an order specified by another indexed field double_score (e.g. 10.0 or 72.3). I currently have the following which fails to work at all: <!-- Note that the default search is on the field name --> <requestHandler name="/scoresearch" class="solr.SearchHandler" default="true"> <!-- <lst name="invariants"> <str name="q">{!boost b

How to boost fields in solr

夙愿已清 提交于 2019-12-21 12:13:55
问题 I already have the boost determined before hand. I have a field in the solr index called boost1 . This boost field will have a value from 1 to 10 similar to google PR rank. This is the boost that should be applied to every query ran in solr. here are the fields in my index Id Title Text Boost1 The boost field should be apply to every query. I am trying to implement functionality similar to Google PR rank. Is there a way to do this using solr? 回答1: you can add the boost during query e.g. q={

Solr Query with LIKE Clause

谁都会走 提交于 2019-12-21 10:32:53
问题 I'm working with Solr and I'd like to know if it is possible to have a LIKE clause in the query. For example, I want to know all organizations with "New York" in the title. In SQL, this would be written like Name LIKE 'New York%'. My question - how do you write a LIKE query in Solr? I'm using the SolrNet library, if that makes a difference. 回答1: You just search for "New York", but first you need to properly configure your field's analyzer. For example you might want to start with a field type

Solr: How to search multiple fields

两盒软妹~` 提交于 2019-12-12 08:58:28
问题 I am using solrnet. I have a title and Description fields. I need to search both fields simultaneously. How do I do this? 回答1: Jayendra's answer is correct, but if you want to do this without aggregating data in a single field at index-time (copyFields) and want to do it at query-time instead using the standard handler instead of dismax, in SolrNet you can do: var query = Query.Field("title").Is(mytitle) || Query.Field("Description").Is(mydescription); var results = solr.Query(query); See

What means “document popularity” in Solr

余生颓废 提交于 2019-12-11 08:38:43
问题 What is document popularity in solr indexing..? EDisMax parser uses boost parameter. In the example &boost=popularity like that I noticed one query. I couldn't understand what is boost as well as boost=popularity . Before understanding the boost parameter I'd like to know what is "popularity" in document indexing. 回答1: popularity is just "some field" which has been used as an example while boost is a query parameter defined for the edismax request handler. Boosting means to influence the