Hi,
I did one work around to get all documents that contains "Good" or "Microwave"
or "Good Microwave",if i will pass "Good Microwave" as q parameter please guide
me wheather i am going in right direction or not.
I defined two field type(text_general and shingleString) in my schema like below
<fieldType name="text_general" class="solr.TextField"
positionIncrementGap="100"> <analyzer type="index"> <tokenizer
class="solr.StandardTokenizerFactory"/> <filter
class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"
enablePositionIncrements="true" /> <filter
class="solr.LowerCaseFilterFactory"/> </analyzer> <analyzer
type="query"> <tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"
enablePositionIncrements="true" /> <filter
class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType>
<fieldType name="shingleString" class="solr.TextField"
positionIncrementGap="100" omitNorms="true"> <analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/> <filter
class="solr.LowerCaseFilterFactory"/> <filter
class="solr.PositionFilterFactory" /> </analyzer> <analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/> <filter
class="solr.ShingleFilterFactory" outputUnigrams="true"
outputUnigramIfNoNgram="true" maxShingleSize="99"/> <filter
class="solr.PositionFilterFactory" /> <filter
class="solr.LowerCaseFilterFactory"/> </analyzer></fieldType>
then while indexing i am adding all these field to two different copy fields
like below.
<field name="SearchableField" type="shingleString" indexed="true"
stored="false" multiValued="true"/> <copyField source="ProductName"
dest="SearchableField"/> <copyField source="ProductDesription"
dest="SearchableField"/> <copyField source="Product Feedback"
dest="SearchableField"/>
<field name="SearchableField1" type="text_general" indexed="true"
stored="false" multiValued="true"/> <copyField source="ProductName"
dest="SearchableField1"/> <copyField source="ProductDesription"
dest="SearchableField1"/> <copyField source="Product Feedback"
dest="SearchableField1"/>
And now if i am querying on both the fields SearchableField and
SearchableField1 i am getting all the documents which contains "Good" or
"Microwave" or "Good Microwave".Below is the query i am using to get all the
documents.q=SearchableField%3AGood+Microwave%0ASearchableField1%3AGood+Microwave
But the documents containing the whole phrase "Good Microwave",are getting a
very low score.Can anybody guide me to get a higher score on those documents
which contains the whole phrase if at all my approach is correct ?
Or can anybody guide me to achieve this ?
Thanks,Pragyanshis
> From: pragyans...@outlook.com
> To: solr-user@lucene.apache.org
> Subject: Search a Phrase
> Date: Thu, 7 Feb 2013 19:29:04 +0530
>
>
>
>
> Hi,
>
> My schema is like below
>
> <fields>
> <field name="ProductId" type="int" indexed="true" stored="true" />
> <field name="ProductName" type="text_general" indexed="true"
> stored="true" required="true" />
> <field name="ProductDesription" type="string" indexed="true"
> stored="true" required="true" />
> <field name="Product Rating" type="int" indexed="true" stored="true"
> required="true" />
> <field name="Product Feedback" type="text_general" indexed="true"
> stored="true" required="true" />
> </fields>
>
> and my text_general field is like below
>
> <fieldType name="text_general" class="solr.TextField"
> positionIncrementGap="100">
> <analyzer type="index">
> <tokenizer class="solr.StandardTokenizerFactory"/>
> <filter class="solr.StopFilterFactory" ignoreCase="true"
> words="stopwords.txt" enablePositionIncrements="true" />
> <filter class="solr.LowerCaseFilterFactory"/>
> </analyzer>
> <analyzer type="query">
> <tokenizer class="solr.StandardTokenizerFactory"/>
> <filter class="solr.StopFilterFactory" ignoreCase="true"
> words="stopwords.txt" enablePositionIncrements="true" />
> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt"
> ignoreCase="true" expand="true"/>
> <filter class="solr.LowerCaseFilterFactory"/>
> </analyzer>
> </fieldType>
>
> How can i search a Phrase("Good Microwave") over ProductDesription and
> Product Feedback field ?
> Here some documents might contain only "Good" and some might contain only
> "Microwave".
>
> How to get all documents that contains "Good" or "Microwave" or "Good
> Microwave",if i will pass "Good Microwave" as q parameter ?
>
>
>
> Thanks in advance
>
>
>