如何在solr中为facet添加术语?我想通过术语和同义词列表来索引一些文档。
我有包含我希望能够使用的术语的文本文档 搜索。
例如,本文档包含以下术语:
干扰素,细胞因子,MEC
我想要这些术语(或者如果术语是术语列表中术语的同义词,首选术语[不是同义词])显示在我正在索引的术语的构面列表中。
- J Interferon Cytokine Res。 2015年9月25日[提前印刷]
醇>高葡萄糖增加炎症细胞因子基因的表达 在巨噬细胞中通过H3K9甲基转移酶机制。
Li MF(1),Zhang R(1),Li TT(1),Chen MY(1),Li LX(1),Lu JX(1),Jia WP(1)。
作者信息:(1)内分泌与代谢科, 上海交通大学附属第六人民医院 上海市糖尿病研究所,上海市糖尿病临床中心, 上海市重点实验室上海市糖尿病重点实验室 中国上海代谢病中心。
最近的研究表明,组蛋白修饰是其中之一 调节炎症细胞因子基因表达的机制 高血糖症状。然而,组蛋白仍然未知 甲基化被启动并参与炎症的变化 高葡萄糖(HG)条件下的细胞因子基因表达。我们的目标 是为了研究H3K9甲基化是否参与HG诱导的细胞凋亡 巨噬细胞中炎性细胞因子的表达。表达 THP-1衍生的高血糖症细胞因子基因谱 巨噬细胞由人细胞因子抗体阵列确定。基于 人类细胞因子抗体阵列分析的结果, H3K9me3水平的4种炎性细胞因子基因,包括 白细胞介素-6(IL-6),IL-12p40,巨噬细胞炎症蛋白-1α 通过ChIP测定法测定(MIP-1α)和HG下的MIP-1β。 此外,这4种炎性细胞因子基因的表达 在HG或chaetocin(SUV39H1的抑制剂)下 甲基转移酶)暴露或过表达SUV39H1(a 通过定量分析H3K9me3特异性甲基转移酶 聚合酶链反应。在HG条件下培养的巨噬细胞 显示基因表达增加和H3K9me3水平降低 炎性细胞因子基因与孵育的巨噬细胞相比较 正常葡萄糖(NG)培养。用chaetocin抑制SUV39H1 NG处理的巨噬细胞也增加了IL-6的表达, IL-12p40,MIP-1α和MIP-1β。此外,抑制SUV39H1与 HG处理的巨噬细胞中的chaetocin进一步增加了表达 这些炎性细胞因子。相反,NG治疗的巨噬细胞 用SUV39H1转染的质粒显示出降低的表达 炎性细胞因子。此外,过度表达SUV39H1 HG处理的巨噬细胞减轻炎症的表达 HG条件下的细胞因子。最后,HG也增加了 炎症细胞因子在小鼠骨髓来源的表达 巨噬细胞。我们的数据表明HG增加了表达 巨噬细胞中的炎性细胞因子通过减少H3K9me3 水平,部分由SUV39H1介导。失调 表观遗传组蛋白修饰可能是潜在的基因之一 HG诱导炎症细胞因子表达的机制 巨噬细胞。
PMID:26406561 [PubMed - 由出版商提供]
编辑:
我尝试了所建议的内容:
but only got this:
"id":"9cae6e2f-bd81-4c72-b2a8-fd8184af603d",
"_version_":1515690847909183488},
{
"content":["The CHO airport is at 38.1384683,-78.4527887.\nSee also: http://www.lat-long.com/Latitude-Longitude-1480221-Virginia-Charlottesville_Albemarle_Airport.html"],
"title":["Test1"],
"id":"cdf82556-7545-4d81-a7a5-83bb4f14e4b7",
"_version_":1515776762744668160}]
},
"facet_counts":{
"facet_queries":{},
"facet_fields":{
"key_phrases":[]},
"facet_dates":{},
"facet_ranges":{},
"facet_intervals":{},
"facet_heatmaps":{}}}
这是我的查询
http://localhost:8983/solr/Cytokine/query?q=*:*&facet=on&facet.field=key_phrases
EDIT2: 当我在solr admin中查看分析页面时,我可以看到它分解了空白过滤器和shingle过滤器中的数据,但在keepword过滤器中没有任何内容。
编辑3:让它发挥作用!这是我的架构:
<field name="key_phrases" type="key_phrases" indexed="true" stored="false" multiValued="true"/>
<fieldType name="key_phrases" class="solr.TextField" >
<analyzer>
<filter class="solr.ShingleFilterFactory"
minShingleSize="2" maxShingleSize="3"
outputUnigramsIfNoShingles="true"
/>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" tokenizerFactory="solr.KeywordTokenizerFactory"/>
<filter class="solr.KeepWordFilterFactory"
words="keep_phrases.txt" ignoreCase="true"/>
</analyzer>
</fieldType>
<copyField source="content" dest="key_phrases"/>
这是我的同义词:
cytokine, CXCL10, cxcl10, CYTOKINE IP 10 PROTEIN, INTERFERON-INDUCIBLE PROTEIN 10
以下是我的保留词:
endocrinology
cytokine
histone
PS:如果您发现复制字段不起作用,则需要删除solr/server/solr/[CORE NAME]/data
中的数据文件夹。然后重新启动它会起作用。
答案 0 :(得分:1)
这是自然语言处理领域关注的问题之一(NLP),并且有大量的库可以为大多数语言执行不同类型的NLP。
然而,有一些小的黑客可以直接在Solr中执行“poor man's entity extraction”。对于您的情况,本文中的第二个示例将是一个可能的解决方案:
<field name="key_phrases" type="key_phrases" indexed="true" stored="false" multiValued="true"/>
<copyField source="content" dest="key_phrases"/>
<fieldType name="key_phrases" class="solr.TextField" sortMissingLast="true" omitNorms="true">
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.ShingleFilterFactory"
minShingleSize="2" maxShingleSize="5"
outputUnigramsIfNoShingles="true"
/>
<filter class="solr.KeepWordFilterFactory"
words="keep_phrases.txt" ignoreCase="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
..其中keep_phrases.txt
包含类似的内容:
airport
restaurant
toy store
(或您的情况下,干扰素,细胞因子,MEC)。 maxShingleSize
应该与单个短语中最大数量的单词一样大。
对于处理同义词,使用常规同义词过滤器应该没问题。