Thanks Sascha for your post, but i find it interresting, but in my case i don't want to use an additionnal field, i want to be able with the same schema to do a simple query like : "q=res_url:some url", and a query like the other one; in other word; is there any solution to make two or more multivalued fields in the same document linked with each other, e.g: in this result:
- <result name="response" numFound="1" start="0"> - <doc> <str name="id">1</str> <str name="keyword">Key1</str> - <arr name="res_url"> <str>url1</str> <str>url2</str> <str>url3</str> <str>url4</str> </arr> - <arr name="res_rank"> <str>1</str> <str>2</str> <str>3</str> <str>4</str> </arr> </doc> </result> i would like to make solr understand that for this document, value:url1 of "res_url" field is linked to value:1 of "res_rank" field, and all of them are linked to the commen field "keyword". I think that i should use a custom field analyser or some thing like that; but i don't know what to do. but thanks for all; and any supplied help will be lovable. Sascha Szott wrote: > > Hi, > > you could create an additional index field res_ranked_url that contains > the concatenated value of an url and its corresponding rank, e.g., > > res_rank + " " + res_url > > Then, q=res_ranked_url:"1 url1" retrieves all documents with url1 as the > first url. > > A drawback of this workaround is that you have to use a phrase query > thus preventing wildcard searches for urls. > > -Sascha > >> >> Hello everybody, i would like to know how to create index supporting a >> parent/child mapping and then querying the child to get the results. >> in other words; imagine that we have a database containing 2 >> tables:Keyword[id(int), value(string)] and Result[id(int), res_url(text), >> res_text(tex), res_date(date), res_rank(int)] >> For indexing, i used the DataImportHandler to import data and it works >> well, >> and my query response seems good:(q=*:*) (imagine that we have only this >> to >> keywords and their results) >> >> <?xml version="1.0" encoding="UTF-8" ?> >> -<response> >> -<lst name="responseHeader"> >> <int name="status">0</int> >> <int name="QTime">0</int> >> -<lst name="params"> >> <str name="q">*:*</str> >> </lst> >> </lst> >> -<result name="response" numFound="2" start="0"> >> -<doc> >> <str name="id">1</str> >> <str name="keyword">Key1</str> >> -<arr name="res_url"> >> <str>url1</str> >> <str>url2</str> >> <str>url3</str> >> <str>url4</str> >> </arr> >> -<arr name="res_rank"> >> <str>1</str> >> <str>2</str> >> <str>3</str> >> <str>4</str> >> </arr> >> </doc> >> -<doc> >> <str name="id">2</str> >> <str name="keyword">Key2</str> >> -<arr name="res_url"> >> <str>url1</str> >> <str>url5</str> >> <str>url8</str> >> <str>url7</str> >> </arr> >> -<arr name="res_rank"> >> <str>1</str> >> <str>2</str> >> <str>3</str> >> <str>4</str> >> </arr> >> </doc> >> </result> >> </response> >> >> but the problem is when i tape a query kind of this:"q=res_url:url2 AND >> res_rank:1" and this to say that i want to search for the keywords in >> which >> the url (url2) is ranked at the first position, i have a result like >> this: >> >> <?xml version="1.0" encoding="UTF-8" ?> >> -<response> >> -<lst name="responseHeader"> >> <int name="status">0</int> >> <int name="QTime">0</int> >> -<lst name="params"> >> <str name="q">res_url:url2 AND res_rank:1</str> >> </lst> >> </lst> >> -<result name="response" numFound="1" start="0"> >> -<doc> >> <str name="id">1</str> >> <str name="keyword">Key1</str> >> -<arr name="res_url"> >> <str>url1</str> >> <str>url2</str> >> <str>url3</str> >> <str>url4</str> >> </arr> >> -<arr name="res_rank"> >> <str>1</str> >> <str>2</str> >> <str>3</str> >> <str>4</str> >> </arr> >> </doc> >> </result> >> </response> >> >> But this is not true; because the url present in the 1st position in the >> results of the keyword "key1" is url1 and not url2. >> So what i want to say is : is there any solution to make the values of >> the >> "multivalued" fields linked; >> so in our case we can see that the previous result say that: >> - url1 is present in 1st position of "key1" results >> - url2 is present in 2nd position of "key1" results >> - url3 is present in 3rd position of "key1" results >> - url4 is present in 4th position of "key1" results >> >> and i would like that solr consider this when executing queries. >> >> Any helps please; and thanks for all :) > > > -- View this message in context: http://old.nabble.com/how-to-do-a-Parent-Child-Mapping-using-entities-tp26956426p26965478.html Sent from the Solr - User mailing list archive at Nabble.com.