2016-10-10 3 views
0

변환 된 단어 또는 PDF 문서의 일반 텍스트 "document_texts"와 함께 색인이 있습니다. 레일스 스택에 구축 된 ActiveModel은 elasticsearch를 사용하는 DocumentText입니다. 레일 보석, 모델 및 API. 나는 Elasticsearch 유효성 검사 API는 강조된 용어를 가져 오는 단일 필드에 대해 이와 유사한 것보다 쿼리 조건을 설명합니다.

response = DocumentText.search \ 
    query: { 
     filtered: { 
      query: { 
       more_like_this: { 
        ids: ["12345"] 
       } 
      } 
     } 
    } 

를 사용하여 서로에 대한 문서와 일치 할 수 있었다

문서 텍스트를 기반으로 워드 문서 나 PDF의 유사한 일치 할 수 있도록하려면하지만 결과 집합을 어떻게했는지보고 싶어 나는 다음과 같은

client=Elasticsearch::Client.new log:true 

client.indices.validate_query index: 'document_texts', 
    explain: true, 
    body: { 
     query: { 
      filtered: { 
       query: { 
        more_like_this: { 
         ids: ['12345'] 
        } 
       } 
      } 
     } 
    } 

을 할 수 그러나 내가 얻을 elasticsearch의 API 보석을 사용하여 문서

일치하는 데 사용되는 쿼리 용어 무엇인지, 쿼리 얻을 이 응답에

{"valid":true,"_shards":{"total":1,"successful":1,"failed":0},"explanations":[{"index":"document_texts","valid":true,"explanation":"+(like:null -_uid:document_text#12345)"}]} 
내가 어떻게 쿼리는 그 25 개 용어했고, 나는 그들이 쿼리에서 어떻게 무엇을 얻을 수 일치, 25 개면 개까지 사용, 내장 되었나요 찾아 싶습니다

?

나는 가능한지 확실하지 않지만 elasticsearches analyzer에서 사용하는 25 가지 용어를 구할 수 있는지 알고 싶습니다. 그런 다음 내 선택에 따라 조건에 부스트 값을 다시 적용합니다.

나는 또한 내가 오히려 희망이있는 한 생각, 문서 텍스트에서 이것을 강조하고 싶지만이

response = DocumentText.search \ 
    from: 0, size: 25, 
    query: { 
     filtered: { 
      query: { 
       more_like_this: { 
        ids: ["12345"] 
       } 
      }, 
      filter: { 
       bool: { 
        must: [        
         {match: { documentable_type: model}} 
       ] 
       } 
      } 

     } 
    }, 
    highlight: { 
    pre_tags: ["<tag1>"], 
    post_tags: ["</tag1>"], 
    fields: { 
     doc_text: { 
       type_name: { 
       content: {term_vector: "with_positions_offsets"} 
      } 
     } 
    } 
    } 

을 시도하지만 아무것도 생산하지 못합니다. 나는 이것이 가능해야한다는 것을 알고 있지만 누군가가 이것을했는지 아니면 최선의 접근을했는지 알고 싶어 할 것입니다. 어떤 아이디어?

답변

0

누군가 다른 사람을 위해 일부 중지 단어 만 포함하면 검색어에 사용 된 용어를 쉽게 표시 할 수 있습니다. 강조 표시 문제는 해결되지 않지만 mlt 일치 프로세스에 사용 된 용어를 제공 할 수 있습니다. 이 병합되면 일부 기타 설정이 용이해야한다

curl -XGET 'http://localhost:9200/document_texts/document_text/_validate/query?rewrite=true' -d ' 
    { 
     "query": { 
      "filtered": { 
       "query": { 
        "more_like_this": { 
         "ids": ["12345"], 
         "min_term_freq": 1, 
         "max_query_terms": 50, 
         "stop_words": ["this","of"] 
        } 
       } 
      } 
     } 
    }' 

https://github.com/elastic/elasticsearch-ruby/pull/359

을 보여주기 위해 단지 사용된다

client.indices.validate_query index: 'document_texts', 
    rewrite: true, 
    explain: true, 
    body: { 
    query: { 
     filtered: { 
      query: { 
       more_like_this: { 
        ids: ['10538'] 
       } 
      } 
     } 
    } 
}