2011-10-12 46 views
0

我使用在Drupal
apachesolr模块我已创建自定义面字段受试者但在Drupal小面块,句子在多个线折断/导致
例如主题分析化学会
<int name="analyt">1</int>
<int name="chemistri">1</int>
Apachesolr drupal的刻面断裂多行

我已经表杂志,主题subject_journal和文章
我的数据配置文件具有实体

<entity name="subject" pk="id" 
        query="select s.id, s.title from subject s 
          join subject_journal sj on sj.subject_id = s.id 
          join article a on a.journal_id = sj.journal_id 
          where sj.journal_id = '${article.journal_id}' 
          group by s.id, s.title"> 
        <field column="id" name="subject_id" /> 
        <field column="title" name="subject" />       
     </entity> 

请帮
感谢

回答

1

你似乎在你的小场被执行分析。

一般小场细节 -

车花场往往指定服务于两个目的,人类可读的文本和向下钻取查询值,他们经常从用于搜索和排序字段建立索引不同:

它们通常不会被标记为单独的词 它们通常不会被映射为小写 人类可读的标点通常不会被删除(双引号除外) 通常不需要存储它们,因为存储的值看起来很多如索引值和分面机制用于值检索。

您应该为facet字段保留一个单独的副本并对其执行分析,并将其用作facet字段。

<field name="subject" type="text_general" indexed="true" stored="true" multiValued="true"/> 
<!-- Maintain different facet field --> 
<field name="subject_facet" type="string" indexed="true" stored="true" multiValued="true"/> 

<!-- copy field --> 
<copyField source="subject" dest="subject_facet"/> 
+0

感谢帕特尔我还有其他的实体和它们的刻面做工精细和我没有这种方法,你像上面这样杂志方面田间<实体名称=“日记” PK =“ID” 查询=指定使用“选择ISSN,标题从轴颈其中id = '$ {article.journal_id}' “> \t \t \t \t \t \t <字段列=” ISSN”名称= “ISSN”/> \t \t \t \t \t \t <字段列= “标题” name =“journal_title”/> \t \t \t \t \t \t \t \t \t –

+0

如果您使用文本作为字段类型和领域拥有多个单词或产生令牌,你有这个问题。对于facet,你需要字符串作为字段类型。并btw它的Patil而不是Patel – Jayendra

+0

感谢它的工作,我已经改变了从文本到字符串的类型但我必须通过&facet = true,虽然它在配置中已经如此,如果我没有在我的搜索网址中指定&facet = true,它会向我显示与咒语错误有关的主题 –